给定一个文件input.txt,它由数组中的许多元素和数组中的元素组成,我应该读取数据并将其复制到Eiffel中的数组中。例如,For
3
3 4 5
2 3 1我应该得到len = 3,a1 = {3,4,5},a2 = {2,3,1}。
我尝试了以下方法,但没有成功
take_input
-- Read user's input.
local
input: PLAIN_TEXT_FILE
output: PLAIN_TEXT_FILE
itr: INTEGER
do
create input.make_open_read ("input.txt")
input.read_integer
len := input.last_integer
create output.make_open_write ("output.txt")
create num.make_filled (0, 1, len)
create rem.make_filled (0, 1, len)
from
input.start
input.read_integer
itr := 0
until
input.off
loop
itr := itr + 1
if itr <= len then
num [itr] := input.last_integer
input.read_integer
else
rem [itr - len] := input.last_integer
input.read_integer
end
end
input.close
end这里有没有什么方法可以让我继续读取输入,而不是从文件的乞求开始重新开始?
发布于 2019-11-15 23:28:07
在读取元素的数量后,不需要转到文件的开头。因此,在from之后立即删除input.start将会起到作用。
作为一个健全性检查(以防它对您的程序很重要),在开始循环之前测试len是否为正是有意义的。
https://stackoverflow.com/questions/58864282
复制相似问题