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); обеспечивает ввод данных в СТРОКУ
Тут что-то Дмитрий разошелся, да не верно. И про полностью очищенный и не очищенный буфер и про безопасность. Сали тоже не верно ответил. Никаких там столбцов и строчек, совсем другие правила.
Во первых эти процедуры работают не только с вводом с консоли, поэтому нужны две функции.
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 в консоли нажимаете.
Про безопасность за уши притянуто. Это функции с разным назначениями. Любое неправильное их использование не безопасно, любое правильно соответственно безопасно.
Какая разница между WRITE и WRITELN (READ и READLN) в Паскале?
после выполнения оператора WRITELN курсор перходит на следующую строку и следущий текст там и
подробнее...
Помогите написать программу для нахождения синуса числа в паскале?
Если имеется ввиду, что нельзя использовать стандартную функцию, то
Разложение синуса в ряд
подробнее...
Как описать в Паскале "ЦВЕТНОЙ ТЕКСТ" и "МИГАЮЩИЙ" ?? Помогите очень нужно!!!
Цветной текст в паскале устанавливаеццо процедурой textcolor, например:
....
begin
подробнее...
(подскажите лузеру)Какие есть команды в Паскале авс?И что они означают?
есть операции!
1.Операция присваивания. Пример: y:=y-5. В математике предыдущий пример не
подробнее...
Вопрос к программистам на FORTRAN. В чём разница между операторами PRINT и WRITE? Они оба допустимы в FORTRAN-77?
оба оператора допустимы в Фортран-77
разница в том, что оператор PRINT служит лишь для вывода
подробнее...
дано натуральное число n вычислить сколько цифр в числе n и чему равна сумма его цифр паскаль
var n: string;
s,i: integer;
begin
read(n);
s:=0;
for i:=1 to length(n) do
подробнее...
Как за месяц выучить паскаль? с чего мне начать???
Очень советую не начинать с Делфи и других больших оболочек. Скачай старенький Turbo Pascal, его
подробнее...
Объясните пожалуйста на примере как в турбо паскале писать программы "до тех пор, пока"?
В ТП есть 2 условных цикла: While и Repeat. Первый из них выполняется, пока условие, указанное
подробнее...
Вычислить корни квадратного уравнения по программе ТУРБО ПАСКАЛЬ
program kv;
var
a,b,c,D,x1,x2:real;
begin
Read(a,b,c);
подробнее...
Математические операторы
Из них оператор -- только ^.
В языке Basic и программах Microsoft Office так обозначается
подробнее...
В чем разница между READ и READLN в Паскале(DOC)
Read оставляет курсор после чтения значения на той - же строке, а Readln переводит курсор на другую
подробнее...