Pascal(Программирование)[Решено]
MiraJes 20 апреля, 2010 - 11:06
Здравствуйте. Вышло так что знакомых программистов нет, решил напистаь сюда.
Проблема в следующем: команда read(s) (где s типа string) в цикле(и не только в цикле: при условиях) работать не хочет. Вот пример простой програмки:
uses crt;
var
s:string;
begin
Writeln('Введите строку'); read(s);
writeln(s);
readkey;
end;
Все в порядке, все работает. Усложним условием:
uses crt;
var
i:integer;
s:string;
begin
Writeln('Введите 2');read(i);
if i=2 then
begin
Writeln('Введите строку'); read(s);
writeln(s);
readkey;
end;
end.
В цикле команда read(s) игнорируеться. Если кто ни будь разбираеться помогите с вопросом: почему так происходит и как исправить?.
»
- Для комментирования войдите или зарегистрируйтесь
Я уже всех нюансов не
Я уже всех нюансов не помню...
Но так по моему тоже работать не будет
не знаюкак там в паскале, но
не знаю как там в паскале, но вроде так должно быть
у вас ошибка преобразования типов
возможно в паскале нужно вместо одинарных кавычек использовать двойные.
upd
не обратил внимание, что i объявлена как integer
объявите её как string (char если есть такой тип)
или после ввода (не в i) - делайте преобразование типа.
в условии ожидается i= 0x02
а в наличии i=0x32
что-то добрый я сегодня ....
Дело не в перемонной i. Все
Дело не в перемонной i. Все дело в строковой переменной. В условии игнорируеться read(s) где s типа string. Но если s обявиться как тип char или прочее все впорядке и работает.Единственная неувязочка дял выполнения программы мне нужна переменая строкового типа.
не догнал вашу
не догнал вашу мысль
но...
после этого..
i= 0x32 (символ 2)
а здесь
вы проверяете равно ли i 0x02 (значение, число 2)
вот условие и не срабатывает
имхо
что-то добрый я сегодня ....
Но даже если значение i
Но даже если значение i разное. Условие почему то выполняеться. И выполняються операторы writeln и readkey но read пропускается.
может там нужно не read а
может там нужно не read а readln ??? (имеется ввиду оба чтения)
ЗЫ Цикла тут нет :)
"Задавать вопросы имеет смысл только после того, как окончательно убедился, что сам ответ не найдешь. То есть очень, очень редко." (с) сэр Джуффин Халли, Начальник Тайного Сыска
joker79 написал(а): может там
readln помог исправить ошибку.
Логика непонятна, кто
Логика непонятна, кто возьмется объяснить почему?)
^_________^ <-----котэ
readln эт read line дальше
readln эт read line дальше объяснять? read ожидает только одного символа, если нажать enter то их будет 2, второй как раз ситает этот самый enter. Я если правильно помню то логика такая...