埃菲尔铁塔中的文件处理

给出一个文件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,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

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

xuegc2002 回答:埃菲尔铁塔中的文件处理

读取元素数量后,无需转到文件的开头。因此,只需在input.start之后删除from即可解决问题。

作为健全性检查(以防万一,这对于您的程序很重要),在开始循环之前测试len是否为正是合理的。

本文链接:https://www.f2er.com/3099824.html

大家都在问