我有一个程序,可以从文本文件中读取竞争对手的分数:
var
competition : TextFile;
number : byte;
name : array of string;
score : array of array of byte;
j : byte;
i : byte;
begin
AssignFile(competition, 'korcule.txt');
Reset(competition);
ReadLn(competition, number);
SetLength(name, number);
SetLength(score, number, 4);
for i := 0 to number - 1 do begin
ReadLn(competition, name[i]);
j := 0;
While not EoLn(competition) do begin
Read(competition, score[i, j]);
inc(j);
end;
end;
ReadLn;
CloseFile(competition);
end.
文本文件的第一行是竞争对手的数量,然后名称和名称后面是实际人的分数。
5
John Smith
1 8 4 6
Marc Zuckerberg
4 6 7 1
Bill Gates
3 8 4 1
Johnny Rapid
9 9 2 7
Phillip Lauren
4 7 3 1
我需要在多维数组中单独读取分数,如myarray [1] = 1,myarray [2] = 8等等。问题是我的代码总是给我一个错误'无效的数字输入'。问题是什么 ??
答案 0 :(得分:1)
readln
循环后你错过了while
。
在while循环结束时,您已到达该行的末尾,但尚未移至下一行。
此外,您的最终readln
正在从stdin
而不是文本文件中读取。