Ошибка
От: Аноним  
Дата: 26.07.04 08:11
Оценка:
Народ помогите плз
int m;
...
m=0;
...
if (tx=="99")//выброс
            {
                //номер строки
                c.Delete(0,2);
                m1+=2;
                                if(m==21)//как токо в watch m=21 то он всеровно не заходит на b1+=1;
                                 b1+=1;//что это может быть?

                if(m1==1)
                    b1+=1;



                if(m==12&&b1>0)//соответствие переменных
                {
                    while(com[b1]!=command[b3][0])
                        b3+=1;
                    while(per[b5]!=perem[b4][0])
                    {
                        b4+=1;
                        if (b4>99)
                        {
                            c="Unknown identiefer";
                            return;
                        }

                    }

                    if(command[b3][b5]=='L'&&comannd[b3][b5]==perem[b5][1])
                    {
                    }
                    else
                    {
                        c="Type mismatch";
                        return;
                    }
                        b5+=1;
                        b3=0;
                }
            }
Re: Ошибка
От: Sheridan Россия  
Дата: 26.07.04 08:19
Оценка:
0,1,10,11,100 начинаем телепать...
Объясни в чем проблема, что хочешь получить в итоге, что должно быть..
Мыж не телепаты...
-=ICQ:1887019=--=...и WinAmp молчит...=--=RSDN@Home 1.1.4 beta 2 [19905]=-
Matrix has you...
Re: Ошибка
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 26.07.04 08:19
Оценка: -1
Здравствуйте, <Аноним>, Вы писали код.

На будующее
  • Либо включите /W4, либо пишите

    if(21 == m) ...

    вместо

    if(m == 21) ...

  • Давайте более осмысленные имена переменным или/и пишите перед ними комменты, чтобы, например, в VS они в тултипах отображалить.
  • Отбивайте исходники в теги.
    ... << Rsdn@Home 1.1.4 beta 1 >>
  • HgLab: Mercurial Server and Repository Management for Windows
    Re: Ошибка
    От: _nn_  
    Дата: 26.07.04 09:06
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    Прочитайте это
    Автор: Sir Wiz
    Дата: 19.07.04
    и это
    Автор: _nn_
    Дата: 19.07.04
    .
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:04
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>if (tx=="99")//выброс

    Ох, чует моё сердце, что повыше было

    char * tx

    Если я прав, то такое выражение, товаришь Аноним, не имеет смысла и использовать надо функцию сравнения zero terminated строк. Например, strcmp.
    ... << RSDN@Home 1.1.3 stable >>
    Re[2]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:07
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, <Аноним>, Вы писали:


    SW>
    А>>if (tx=="99")//выброс
    SW>

    SW>Ох, чует моё сердце, что повыше было

    SW>
    SW>char * tx 
    SW>

    SW>Если я прав, то такое выражение, товаришь Аноним, не имеет смысла и использовать надо функцию сравнения zero terminated строк. Например, strcmp.

    В этом случае (только если не будет ничего меняться) можно еще и так :
    if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)


    Хотя изврат, однако
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[3]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:14
    Оценка:
    Здравствуйте, _nn_, Вы писали:


    __>В этом случае (только если не будет ничего меняться) можно еще и так :

    __>
    __>if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)
    __>


    ИМХО нельзя. Если вот так:

    char * tx = new char[1];
    tx[0] = '0';

    То на попытку получить tx[1] и tx[2] будет ба-бах.

    Или я не прав?
    ... << RSDN@Home 1.1.3 stable >>
    Re[4]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:17
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>ИМХО нельзя. Если вот так:


    SW>
    SW>char * tx = new char[1];
    SW>tx[0] = 0;
    SW>

    Опечатался немного, не zero terminated строка получилась, но ба-бах всё-равно будет
    ... << RSDN@Home 1.1.3 stable >>
    Re[4]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:17
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, _nn_, Вы писали:



    __>>В этом случае (только если не будет ничего меняться) можно еще и так :

    __>>
    __>>if(tx[0]=='9'&&tx[1]=='9'&&tx[2]==0)
    __>>


    SW>ИМХО нельзя. Если вот так:


    SW>
    SW>char * tx = new char[1];
    SW>tx[0] = '0';
    SW>

    SW>То на попытку получить tx[1] и tx[2] будет ба-бах.

    SW>Или я не прав?


    Частично
    Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    Зато если сделать :
    char* tx=new char[1];
    tx[0]='9'

    То будет ба-бах на tx[1];

    Правильней так :
    if(tx[0]&&tx[0]=='9'&&
       tx[1]&&tx[1]=='9'&&
       tx[2]&&tx[2]=='9'&&
       !tx[3])
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[5]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:21
    Оценка:
    Здравствуйте, _nn_, Вы писали:

    SW>>Или я не прав?

    __>Частично
    __>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    Резонное замечание.

    __>Правильней так :

    __>
    __>if(tx[0]&&tx[0]=='9'&&
    __>   tx[1]&&tx[1]=='9'&&
    __>   tx[2]&&tx[2]=='9'&&
    __>   !tx[3])
    __>

    Да, это сильно похоже на правду.

    999? Ставки растут!
    ... << RSDN@Home 1.1.3 stable >>
    Re[6]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:27
    Оценка:
    Здравствуйте, Sir Wiz, Вы писали:

    SW>Здравствуйте, _nn_, Вы писали:


    SW>>>Или я не прав?

    __>>Частично
    __>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>Резонное замечание.

    __>>Правильней так :

    __>>
    __>>if(tx[0]&&tx[0]=='9'&&
    __>>   tx[1]&&tx[1]=='9'&&
    __>>   tx[2]&&tx[2]=='9'&&
    __>>   !tx[3])
    __>>

    SW>Да, это сильно похоже на правду.

    SW>999? Ставки растут!

    Народ все работает в ко де кроме этого сравнения а
    насесет tx
    CString tx вот так вот я написал =)))
    Re[7]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:29
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    я смотрел в step'e
    он проходит через if (tx=="99")//выброс
    вы мне на вопрос по поводу if(m==21)
    ответьте!!! плиззз
    Re[7]: Ошибка
    От: _nn_  
    Дата: 26.07.04 10:30
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    SW>>999? Ставки растут!

    Ага
    А>Народ все работает в ко де кроме этого сравнения а
    А>насесет tx
    А>CString tx вот так вот я написал =)))
    А мы тут с указателями балуемся
    С CString все тогда должно работать нормально.
    CString tx="99";
    if(tx=="99") // Ok
    {
     ...
    }
    http://rsdn.nemerleweb.com
    http://nemerleweb.com
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:31
    Оценка:
    Да и еще один если написать
    вместо if(m==21) написать if(m==10)
    то он не будет обходить а выполнит IF
    вот в чем косяк не пойму !!!
    Re[7]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 10:33
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Здравствуйте, Sir Wiz, Вы писали:


    SW>>Здравствуйте, _nn_, Вы писали:


    SW>>>>Или я не прав?

    __>>>Частично
    __>>>Проверка — tx[0]=='9' будет не успешна и поэтому остальное просто не будет проверяться.
    SW>>Резонное замечание.

    __>>>Правильней так :

    __>>>
    __>>>if(tx[0]&&tx[0]=='9'&&
    __>>>   tx[1]&&tx[1]=='9'&&
    __>>>   tx[2]&&tx[2]=='9'&&
    __>>>   !tx[3])
    __>>>

    SW>>Да, это сильно похоже на правду.

    SW>>999? Ставки растут!

    А>Народ все работает в ко де кроме этого сравнения а
    А>насесет tx
    А>CString tx вот так вот я написал =)))

    Что значит "не работает сравнение"?
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:33
    Оценка:
    Здравствуйте, _nn_, Вы писали:

    Я ж не про tx спрашивал а вы начали весь код лопатить =)
    так что смотрите выше там главный вопрос
    про IF(m==21)
    Re[8]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:34
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:

    ну перепрыгивает его в step хотя значение в watch которое надо
    Re[9]: Ошибка
    От: Нахлобуч Великобритания https://hglabhq.com
    Дата: 26.07.04 10:37
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Здравствуйте, Нахлобуч, Вы писали:


    А>ну перепрыгивает его в step хотя значение в watch которое надо


    Тады давай побольше кода (с определением m и в тегах ).
    ... << Rsdn@Home 1.1.4 beta 1 >>
    HgLab: Mercurial Server and Repository Management for Windows
    Re[10]: Ошибка
    От: Аноним  
    Дата: 26.07.04 10:39
    Оценка:
    Здравствуйте, Нахлобуч, Вы писали:


    Н>Тады давай побольше кода (с определением m и в тегах ).

    смотри 1 сообщение !!
    а в коде этой переменной больше ни чего не косалось
    а код на пару листов без коментарие
    так что думаю любой прогер запутаеться
    Re[9]: Ошибка
    От: Sir Wiz Россия  
    Дата: 26.07.04 10:41
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>Да и еще один если написать

    А>вместо if(m==21) написать if(m==10)
    А>то он не будет обходить а выполнит IF
    А>вот в чем косяк не пойму !!!
    Предположу, что у вас "на самом деле" было написано

    if(m==21);
    b1+=1;

    Где выделенная точка с запятой совершенно лишняя.
    ... << RSDN@Home 1.1.3 stable >>
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.