Pascal 文件读取问题,运行时无法输出
我试着做一个程序,从一个文件中读取数字,输出到一个向量中,然后写入它们。代码编译得很好,但在运行时,它只需要一个提示,而不提供任何输出 节目讲演Pascal 文件读取问题,运行时无法输出,pascal,Pascal,我试着做一个程序,从一个文件中读取数字,输出到一个向量中,然后写入它们。代码编译得很好,但在运行时,它只需要一个提示,而不提供任何输出 节目讲演 type Arreglo = array [1..30] of integer; var //Arch:text; Prom:byte; i:integer; ArregloA:Arreglo; Procedure CargadorVectorialdeArchivo (var ArregloA:Arre
type
Arreglo = array [1..30] of integer;
var
//Arch:text;
Prom:byte;
i:integer;
ArregloA:Arreglo;
Procedure CargadorVectorialdeArchivo (var ArregloA:Arreglo);
var
Arch:text;
i:integer;
Begin
assign (Arch,'Numeros.txt');
reset (Arch);
i := 1;
while not eof(Arch) do
Write(Arch);Read(ArregloA[i]);
i := i + 1;
End;
Begin
CargadorVectorialdeArchivo(ArregloA);
for i := 1 to 14 do
WriteLn(ArregloA[i]:3);
End.
正如我所说,没有错误消息,只有提示,没有输出。我必须按住CTRL-Z键才能使它脱离这个“循环”。预期的输出将是数组的编号,每行一个。将过程重写为:
Procedure CargadorVectorialdeArchivo (var ArregloA:Arreglo);
var
Arch:text;
i:integer;
Begin
assign (Arch,'Numeros.txt');
reset (Arch);
i := 1;
while not eof(Arch) do
begin
Read(Arch,ArregloA[i]);
i := i + 1;
end;
End;
将
Arch
放在文件前面会告诉编译器您要从该文件而不是从键盘读取内容。将过程重写为:
Procedure CargadorVectorialdeArchivo (var ArregloA:Arreglo);
var
Arch:text;
i:integer;
Begin
assign (Arch,'Numeros.txt');
reset (Arch);
i := 1;
while not eof(Arch) do
begin
Read(Arch,ArregloA[i]);
i := i + 1;
end;
End;
将
Arch
放在文件前面会告诉编译器您想从该文件中读取内容,而不是从键盘。1)在文件打开以供输出的情况下,您无法测试Eof(Arch)
,因为您正在向该文件写入内容。2) 您没有使用write(Arch)
编写任何内容,因为您没有提供任何要编写的数据。3) 在将内容传递给functino之前,您不会将任何内容放入Arregoa
。4) 您不会像在代码中那样读取数组。你需要备份并重新开始。考虑一下将多个值放入一个数组(项目列表)并将该列表写入文件所需的步骤。此外,i+1在while循环之外。你必须使用适当的缩进来注意这些错误。谢谢你们!还有,什么是适当的缩进呢?该语句(i:=i+1)应该缩进到与“while”相同的级别,因为没有封闭的开始/结束。然后您会注意到错误,这意味着您没有纠正将值实际放入数组的问题。随机数字串是由于使用未初始化的变量而导致的随机内存内容。在您更改代码后,我无法告诉您当前版本的代码有什么问题,因为我无法从这里看到您的屏幕。我建议您学习使用调试器逐步检查代码以查看发生了什么。1)在文件打开以供输出的情况下,您不能测试Eof(Arch)
,因为您正在向文件写入。2) 您没有使用write(Arch)
编写任何内容,因为您没有提供任何要编写的数据。3) 在将内容传递给functino之前,您不会将任何内容放入Arregoa
。4) 您不会像在代码中那样读取数组。你需要备份并重新开始。考虑一下将多个值放入一个数组(项目列表)并将该列表写入文件所需的步骤。此外,i+1在while循环之外。你必须使用适当的缩进来注意这些错误。谢谢你们!还有,什么是适当的缩进呢?该语句(i:=i+1)应该缩进到与“while”相同的级别,因为没有封闭的开始/结束。然后您会注意到错误,这意味着您没有纠正将值实际放入数组的问题。随机数字串是由于使用未初始化的变量而导致的随机内存内容。在您更改代码后,我无法告诉您当前版本的代码有什么问题,因为我无法从这里看到您的屏幕。我建议您学习使用调试器逐步检查代码以查看发生了什么。