我正在编写一个程序,该程序从文本文件中读取所有数字。但是在数组末尾,它也输出“ 0”,但实际上我在数组中没有任何0。
在文件中我有:12 456 56 7 但是编译器将输出以下内容:12 456 56 7 0
bulk_create(..)
答案 0 :(得分:1)
我学习了Pascal的Wiki,尝试使用SeekEOLn进行实验,即使有空白的换行符,它也能正常工作
代码如下:
program p3;
uses crt;
var f:text;
a:array[1..99] of integer;
i,j:integer;
begin
clrscr;
assign(f,'numere.txt');
reset(f);
i:=0;
while not eof(f) do begin
if not seekeoln(f) then begin
inc(i);
read(f,a[i]);
end
else readln(f);
end;
for j:= 1 to i do write(a[j],' ');
close(f);
writeln;
readkey
end.
感谢您的帮助! -在读取文件时,代码将检查光标是否位于行尾,如果不是,它将读取第一个数字,然后读取第二个数字,依此类推,直到到达行尾,然后它将忽略任何空格,因为它将转到新行。 我希望这对解决此问题的任何人都有帮助。
答案 1 :(得分:0)
我已经使用 numere.txt 的输入在Free Pascal中测试了您原来的问题中的代码,这没有什么错。它完成了应该做的事情。因此,我确定问题出在您的文本文件内。多余的换行符或多余的字符可能会“令人惊讶”。