read pascal



Read в паскале

Автор Александр задал вопрос в разделе Другие языки и технологии

Зачем в Паскале есть read и readln, если read тоже переводит строку, хотя по идее не должен? и получил лучший ответ

Ответ от Skipy _[гуру]
readln - забирает значение из буфера ввода в параметр очищает полностью буфер ввода с клавиатуры
а read - забирает значение из буфера ввода в параметр и не очищает в буфер, а оставляет значение!! !
перевод строки при вводе автоматический - везде
т. е. readln - безопасный ввод
read- небезопасный ввод
пример:
var
a,b: integer;
begin
read(a); {пользователь ввёл : 4, 5 a = 4}
{в буффере ввода число 5 !!}
read(b); {здесь он ввёл число: 6, но b = 5)
{в буффере ввода так и осталось число 6!!}
---
readln(a);{пользователь ввёл : 4, 5; a = 4}
{буффер ввода чист !!}
readln(a);{пользователь ввёл число 6 и b = 6}
{буффер ввода чист !!}
readln(b);
end.
Наоборот, там нет автоматического определения типа вводимого значения, все определяется условными обозначениями в спецификаторе формата.

Ответ от Ёали-Мали[гуру]
Можно объяснить проще, без особых заморочек:
При выполнении процедуры read значение следующего данного читается из этой же строки, а при выполнении процедуры readln значение следующего данного читается с новой строки.
Поэтому оператор Readln (b1,b2,...bn); обеспечивает ввод данных в СТОЛБИК.
После ввода каждой переменной b1, b2, ..bn курсор переходит к началу новой строки.
Оператор Read(b1,b2,...bn); обеспечивает ввод данных в СТРОКУ

Ответ от ВТ-107 ФИТ[гуру]
Тут что-то Дмитрий разошелся, да не верно. И про полностью очищенный и не очищенный буфер и про безопасность. Сали тоже не верно ответил. Никаких там столбцов и строчек, совсем другие правила.
Во первых эти процедуры работают не только с вводом с консоли, поэтому нужны две функции.
procedure Read(F, V1 [, V2,...Vn ] );
читает все V1..Vn из потока (ровно n параметров) , все прочитанные данные будут удалены. Все что будет после эти данных, останется без изменений.
При чтении строки будет прочитано все до символа новой строки или конца файла. Последующие вызовы read буду возвращать пустую строку. И из потока символ новой строки не будет удален.
Если читать char, то в зависимости от установок может быть прочитан символ новой строки как char(26)
При чтении чисел пропускаются все пробелы, табы, переходы строк. И следующее чтение начнется с символа идущего после прочитанного числа. Опять же ненужные символы могут быть пропущены.
procedure ReadLn([ var F: Text; ] V1 [, V2, ..Vn ]);
читает из потока V1, Vn(т. е работает как read) а потом пропускает все символы до новой строки включительно. Все символы после перехода строки останутся без изменений.
Переход на новую строку осуществляется, потому что вы Enter в консоли нажимаете.
Про безопасность за уши притянуто. Это функции с разным назначениями. Любое неправильное их использование не безопасно, любое правильно соответственно безопасно.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Зачем в Паскале есть read и readln, если read тоже переводит строку, хотя по идее не должен?

Какая разница между WRITE и WRITELN (READ и READLN) в Паскале?
после выполнения оператора WRITELN курсор перходит на следующую строку и следущий текст там и
подробнее...
спросили в X PRIZE
Помогите написать программу для нахождения синуса числа в паскале?
Если имеется ввиду, что нельзя использовать стандартную функцию, то
Разложение синуса в ряд
подробнее...
спросили в Паскаль
Как описать в Паскале "ЦВЕТНОЙ ТЕКСТ" и "МИГАЮЩИЙ" ?? Помогите очень нужно!!!
Цветной текст в паскале устанавливаеццо процедурой textcolor, например:
....
beginподробнее...
спросили в Паскаль
(подскажите лузеру)Какие есть команды в Паскале авс?И что они означают?
есть операции!
1.Операция присваивания. Пример: y:=y-5. В математике предыдущий пример не
подробнее...
спросили в Фортран
Вопрос к программистам на FORTRAN. В чём разница между операторами PRINT и WRITE? Они оба допустимы в FORTRAN-77?
оба оператора допустимы в Фортран-77
разница в том, что оператор PRINT служит лишь для вывода
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Паскаль
Как за месяц выучить паскаль? с чего мне начать???
Очень советую не начинать с Делфи и других больших оболочек. Скачай старенький Turbo Pascal, его
подробнее...

Объясните пожалуйста на примере как в турбо паскале писать программы "до тех пор, пока"?
В ТП есть 2 условных цикла: While и Repeat. Первый из них выполняется, пока условие, указанное
подробнее...
спросили в Square
Математические операторы
Из них оператор -- только ^.
В языке Basic и программах Microsoft Office так обозначается
подробнее...

В чем разница между READ и READLN в Паскале(DOC)
Read оставляет курсор после чтения значения на той - же строке, а Readln переводит курсор на другую
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*