Записать строки, введенные с клавиатуры в массив
 Добавлено: 08.12.2009 19:14:55
Добавлено: 08.12.2009 19:14:55Здравствуйте, коллеги! Нужен совет. С паскалем знаком только в рамках университетской практики. Нужна функция, которая бы считывала строки, введенные с клавиатуры и записывала бы их в массив. Я написал ее так:
На моем ноутбуке стоит Slackware 13 и программа работает как полагается в str записываются строки и возвращается кол-во считанных строк. Функция getlines завершает свою работу по нажатии Ctrl+D. Однако на Ubuntu 9.04, после компиляции этого же кода при нажатии Ctrl+D символ конца файла не генерируется, появляется квадратик и работа функции продолжается. С чем это может быть связано? И еще, если в цикле getlines вместо readln поставить read, то при запуске получаем Runtime Error. Почему я не могу использовать read в этом случае?
			- Код: Выделить всё
- program Project1;
 var
 str: array [0..1000] of string;
 n,i: integer;
 // getlines: считывает введенные с клавиатуры строки,
 // записывает их в массив str и возвращает количество
 // считанных строк.
 function getlines(var str: array of string): integer;
 var
 i: integer; // Счетчик строк
 begin
 i := 0; // Инициализация счетчика
 // Пока не достигнут конец файла считываем следующую
 // строку и увеличиваем счетчик.
 while not eof(input) do
 begin
 readln(str[i]);
 inc(i);
 end;
 // Возвращаем количество считанных строк
 getlines := i;
 end;
 begin
 n := getlines(str);
 writeln('Количество строк: ', n);
 writeln('Массив строк:');
 for i := 0 to n do
 writeln(str[i]);
 end.
На моем ноутбуке стоит Slackware 13 и программа работает как полагается в str записываются строки и возвращается кол-во считанных строк. Функция getlines завершает свою работу по нажатии Ctrl+D. Однако на Ubuntu 9.04, после компиляции этого же кода при нажатии Ctrl+D символ конца файла не генерируется, появляется квадратик и работа функции продолжается. С чем это может быть связано? И еще, если в цикле getlines вместо readln поставить read, то при запуске получаем Runtime Error. Почему я не могу использовать read в этом случае?