Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Почему не считывается переменная?


Рекомендуемые сообщения

Почему не считывается переменная s2?

program slova;uses crt;vars1: string;s2: string;i:integer;beginclrscr;begin   WriteLN('Введите первое слово: ');   Read(s1);   WriteLN('Введите второе слово: ');   Read(s2);end;For i:=1 to length(s1) do   beginIf pos(s1[i],s2)=0 thenbegin     WriteLN('Составить нельзя');     Readkey;     Halt(0);endelse     delete(s2,pos(s1,s2),1);   end;WriteLN('Можно составить');end.
Изменено пользователем gvozd
Ссылка на комментарий
Поделиться на другие сайты

gvozd

Используй ReadLn вместо Read. Они по-разному работают с буфером.

P.S. Описаниям в учебниках о том, что, дескать, разница только в том, что ReadLN переводит строку, а Read - нет, не верь. На самом деле все совсем иначе. Кто-то когда-то написал чушь, и почти все авторы учебников ее переписывают.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Разница между работой процедур Read и Readln состоит в следующем:

после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.

Поетому у тебя и читает пустую строчку, так как первая Read считала до конца строки.

P.S. Так что в книгах все правильно, нужно только правильно ето понимать что переводится строка не вывода информации а ввода.

Ссылка на комментарий
Поделиться на другие сайты

yuriks

Ну, не скажу, чтобы формулировка "переводится строка не вывода информации а ввода" была понятна. Но по сути согласен. Если это подробно расшифровать, будет понятно и тем, кто учит язык. Но в учебниках обычно пишется о курсоре и переводе строки. Хотя на самом деле речь должна идти о буфере ввода, а для буфера или файла это называется текущая позиция и метка конца строки (#10#13). Курсор и перевод строки - понятия для экрана. Отсюда и путаница.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...