Помощь - Поиск - Пользователи - Календарь
Полная версия: Баг с опером Read
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
comanche
Uses    CRT;
Var
        iNumber : LongWord;
        iRemain : Byte;
        iRepeat : Char;

Begin

  Repeat

  Clrscr;
                { пункт 1 }
    Write ( 'Please, enter number: ' ); 
    Read ( iNumber );                  // вот тут
    While iNumber > 0 Do
          Begin
            iRemain := iNumber mod 10;
            Dec ( iNumber, iRemain );
            iNumber := iNumber div 10;
            Write ( iRemain, Chr ( 32 ) );
          End;

    WriteLn;
    Write ( 'Repeat? Type "N" to quit.. ' );
    ReadLn ( iRepeat );

  Until iRepeat = 'N';

  Readkey;

End.


Программа не отвечает на написание 'N' и постоянно возвращается в Пункт 1.
Если же заменить Read на ReadLn, то программа работает нормально. Проверял на нескольких компиляторах, везде тот же баг. В чём фишка? huh.gif
volvo
Ну, допустим это совсем не баг, так и должно быть: ты же после ввода числа жмешь Enter, вот этот Enter и читается когда вызывается второй ReadLn, и получается что у тебя в iRepeat заносится #13, а совсем не 'N' ...
comanche
Оооочень интересно smile.gif Спасибо за информацию!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.