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

Почему не работает программа?

Почему после запуска требует ввод с клавиатуры?

Почему не работает eoln??

var

k, n, i: longint;

begin

assign(input, 'input.txt');

reset(input);

readln(n);

while not eoln do

begin

read(k);

writeln(k);

end;

writeln(n);

end.
Kaisar Sadiev
Kaisar Sadiev
970
Потому что Вы и написали ввод с клавиатуры. А надо так:
readln(input,n); read(input,k);
while not eoln(input) do

Блин, да тут почти всю программу переделывать надо!

var
k, n, i: longint;
input:text;
begin
assign(input,'input.txt');
reset(input);
readln(input,n);
while not eoln(input) do
begin
read(input,k);
writeln(k);
end;
writeln(n);
close(input);
end.

Но лучше не называть файловую переменную так же, как и файл. Так не очень наглядно
assign(f,'input.txt');
Денис Данилов
Денис Данилов
63 511
Лучший ответ
Насколько я помню, в самом начале задать input и дальше его не указывать в процедурах - вольность Free Pascal.
AA
Arslan Amanow
50 628
Короче, как я понимаю, эта программа должна считать из файла длинные числа и вывести их на экран? Было бы неплохо увидеть задание.
=================================
var

k, n, i: longint; // переменные n, i - не используются.
input : text; // объявляем переменную текстового типа или как-то так.
begin

assign(input,'input.txt'); // связываем переменную input с нужным файлом

reset(input); // открываем файл на чтение.

//readln(n); // Вот почему требует ввод с клавиатуры. Потому что есть эта строка.

while not eof (input) do // Тут короче нужно eof (end of file), а не eoln. Я не знаю, что такое eoln. А-а-а. Никогда не использовал eoln. А она означает end of line. Т. е. считать файл до конца строки. Т. е. определитесь, вам нужно считать файл до конца строки или до конца файла. )

begin

read(input,k); // тут будут читать цифры из файла

writeln(k); // тут будут выводить их на экран

end;

writeln(n); // а эта строка ещё зачем? можно и удалить.

end.