编译器在数组末尾输出0

时间:2018-11-24 17:05:06

标签: arrays file pascal freepascal

我正在编写一个程序,该程序从文本文件中读取所有数字。但是在数组末尾,它也输出“ 0”,但实际上我在数组中没有任何0。

在文件中我有:12 456 56 7 但是编译器将输出以下内容:12 456 56 7 0

这是代码:

bulk_create(..)

2 个答案:

答案 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中测试了您原来的问题中的代码,这没有什么错。它完成了应该做的事情。因此,我确定问题出在您的文本文件内。多余的换行符或多余的字符可能会“令人惊讶”。