可能存在基本问题。我一直在尝试从文件中读取一个数组,然后从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;
答案 0 :(得分:2)
在您完成文件变量后尝试Assign(input, '');
(空文件名),即在您调用close(input)
之后。
答案 1 :(得分:0)
你没有告诉程序从哪个文件中读取;在没有文件名的情况下,程序尝试从控制台读取,这解释了你写道“它只是不等到我在屏幕上写输入字符串”(不应该是“它等到我写输入字符串“?)。
我不知道这是否是故意的,但文件的第一行应该保持一个整数值。最好从文件中读取一个字符串变量,然后在将它用作循环计数器之前检查字符串是否为数字。