1

我可能有一个基本问题。我一直在尝试从文件中读取一个数组,然后从 Pascal 语言的标准输入中读取一个字符串。它不会发送错误消息,只是不会等到我在屏幕上写下输入字符串。我该怎么办?

这是我的代码:

Procedure beolvas(var x:rangsor; var n:byte; fajl:string);
var i:byte;

Begin
  Assign(input,fajl);
  Reset(input);
Readln(n);
for i:=1 to n do begin
   Readln(x[i].diak);
   Readln(x[i].atlag);
end;
close(input)
End;

Procedure beolvasnev(var s:string; x:rangsor; n:byte);
var i:byte;
Begin
Write('Kerem a diak nevet: ');
Readln(s);
End;
4

2 回答 2

2

完成文件变量后尝试Assign(input, '');(空文件名),即在您调用close(input).

于 2012-11-16T23:12:52.950 回答
0

您没有告诉程序从哪个文件中读取;在没有文件名的情况下,程序会尝试从控制台读取,这解释了你写“它只是不等到我在屏幕上写输入字符串”(不应该是“它等到我写输入字符串“?)。

我不知道这是不是故意的,但文件的第一行应该是一个整数值。最好从文件中读取一个字符串变量,然后在将其用作循环计数器之前检查该字符串是否为数字。

于 2012-11-21T13:20:02.760 回答