Eiffel中的文件处理

问题描述 投票:0回答:1

给出一个文件input.txt,它由数组中的许多元素和数组中的元素组成,我应该读取数据并将其复制到Eiffel中的数组中。例如,对于

3 
3 4 5
2 3 1

我应该得到len = 3a1 = {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

这里有什么方法可以连续读取输入内容,而不是从文件的开头重新开始?

file-io eiffel eiffel-studio-18
1个回答
0
投票

读取元素数量后,无需转到文件的开头。因此,在input.start之后立即删除from将达到目的。

作为健全性检查(如果对您的程序而言是重要的,在开始循环之前测试len是否为正是合理的。

© www.soinside.com 2019 - 2024. All rights reserved.