为什么程序会退出?

时间:2014-01-21 14:38:02

标签: freepascal

以下程序打开一个文件,将第一行中存在的前两个字符串读入两个变量。问题是我一直试图看看下面的程序有什么问题,但我不明白为什么它不起作用。 编译器编译它没有任何问题,但是当我运行它时,它说退出exitcode 2。 问题是该文件存在。 什么似乎是问题? 谁能帮帮我吗? 代码如下。

Program num;

Var
  f: Text;
  b, g: String;
  c: String[1];

Procedure thenum (a:String);
Begin
  Assign(f,'textfileoffile.txt');
  Reset(f);
  a := 'A';
  while not eof(f) and (a <> ' ') do
  begin
    Read (f,a);
  End;
  Writeln(a);
End;

Procedure sth ( j:String);
begin
  Assign(f,'textfileoffile.txt');
  Reset(f);
  j:='A';
  while not seekEoln and eof(f) do
  begin
    read(f,j);
  end;
  Writeln(j);
End;

begin
  Assign(f,'textfileoffile.txt');
  repeat
    Reset(f);
  until eof(f);
  thenum(b);
  read(f, c);
  sth (g);
  if eof(f) then
    Close(f);
  Readln;
End.

1 个答案:

答案 0 :(得分:1)

我认为问题是,你多次打开同一个文件

repeat
Reset(f);
until eof(f);

并且你在程序中打开这个文件,我认为你必须使用f作为你的函数的参数,不要再打开它,或者使它全局化