Помощь - Поиск - Пользователи - Календарь
Полная версия: Баг с опером 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 Спасибо за информацию!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.