首页 > 解决方案 > 读取以空格分隔的整数

问题描述

我编写了一个读取数组并返回它的函数:

function read_array(f) result (arr)
    implicit none
    integer, intent(in) :: f
    integer, dimension(:), pointer :: arr
    integer :: n, i

    read(f, *) n
    allocate(arr(n))
    do i = 1, n
        read(f, *) arr(i)
    end do
end function read_array

该函数应该以单元为单位从文件中读取整数数组f并将其作为指针返回。问题是在do循环中,每条read语句都读取一整行,而不仅仅是 1 个整数。

这是我希望我的文件的外观:

5
9 7 4 3 10

这是我目前必须如何布置的:

5
9
7
4
3
10

那么我怎样才能使read语句不消耗一整行而只读取一个数字呢?

标签: fortran

解决方案


我认为像

read(f,*)yourarray

应该为你工作


推荐阅读