Помощь - Поиск - Пользователи - Календарь
Полная версия: Readln(CheckString) не исполняется.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CognitivusLombardus
Здравствуйте! Не нашёл более подходящего названия темы.
Суть проблемы:
 
Program Str1;
Uses Crt;
Var
CheckString: String;
Base: array[1..128,1..128] of Integer;
GlobalKey, Error, Tempo: Integer;

Begin
Repeat

Repeat
Clrscr;
GlobalKey:=999;
Writeln('.------------------------------------------.');
Writeln('| 0: Clear screen |');
Writeln('| 1: Pokazatj spisok |');
Writeln('| 2: Pokazatj element |');
Writeln('| 10: quit |');
Writeln('.------------------------------------------.');
Readln(CheckString);
Val(CheckString, GlobalKey, Error);
Until Error=0;


Case GlobalKey of

1:
Begin
Write('Nomer spiska = ');
Read(CheckString);
Write('Moo!');
Readln(CheckString);
End;

End;


Until GlobalKey=10;
End.


При выборе 1, мы переходим в меню ввода номера списка, вводим, и дальше должна появиться надпись 'Moo!' и ждать ввода CheckString - такого не происходит. Где ошибка?
volvo
Цитата
Где ошибка?


Цитата
Begin
Write('Nomer spiska = ');
Read(CheckString); { <--- Здесь }
Write('Moo!');
Readln(CheckString);
End;
Ввод строки завершается Enter-ом? Вот ты и должен сначала прочитать этот символ (Read его не читает, а оставляет в буфере клавиатуры). Замени Read на ReadLn, это исправит ошибку...

P.S. Для подсветки кода есть тег [cоde=pas], а не [quote]...
CognitivusLombardus
Спасибо за ответ и совет!
Lapp
Не вижу тут ничего такого "общего" - обычная ошибка с паскалевским (а точнее даже, с turbo-паскалевским) ReadLn. Переношу из Общих Вопросов в Задачи..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.