【问题标题】:How to avoid the program to read past the end of input file?如何避免程序读取输入文件的末尾?
【发布时间】:2018-01-07 07:06:24
【问题描述】:

此Pascal 代码不断尝试读取输入文件的末尾。为什么会发生这种情况?如何解决这个问题?

program wwhilencounter;
var 
  bil,jumlah : integer;
begin
  jumlah := 0;
  while not eof(input) do
  begin
    readln(bil);
    jumlah:=jumlah+bil;
  end;
  writeln(jumlah);
  readln 
end.

【问题讨论】:

  • 程序出了什么问题?如果您输入一些数字,每个数字后跟 Enter,然后按 Ctrl-D (linux) 或 Ctrl-Z (Windows),您会得到总和,然后它会等待您按 Enter 退出程序。它似乎按设计工作。你在说什么“文件”?这是从标准输入读取,而不是文件。最后一个readln 的标准输入再次打开。你为什么要避免这种情况?

标签: while-loop pascal eof


【解决方案1】:

您的 while 循环一直读取到输入结束,但在程序结束之前您还有另一个 readln。此时您的输入已经用完。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多