Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Readln(CheckString) не исполняется.

Автор: CognitivusLombardus 30.01.2010 21:13

Здравствуйте! Не нашёл более подходящего названия темы.
Суть проблемы:

 
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 30.01.2010 21:47

Цитата
Где ошибка?


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

P.S. Для подсветки кода есть тег [cоde=pas], а не [quote]...

Автор: CognitivusLombardus 30.01.2010 22:00

Спасибо за ответ и совет!

Автор: Lapp 31.01.2010 1:52

Не вижу тут ничего такого "общего" - обычная ошибка с паскалевским (а точнее даже, с turbo-паскалевским) ReadLn. Переношу из Общих Вопросов в Задачи..