获取fortran运行时错误:文件结束

use*_*034 7 fortran runtime gfortran

我最近学会了如何在Fortran中使用基本文件,我认为它很简单:

open(unit=10,file="data.dat")
read(10,*) some_variable, somevar2
close(10) 
Run Code Online (Sandbox Code Playgroud)

所以我无法理解为什么我写的这个函数不起作用.它编译得很好但是当我运行它打印:

fortran runtime error:end of file
Run Code Online (Sandbox Code Playgroud)

码:

Function Load_Names()

character(len=30) :: Staff_Name(65)
integer :: i = 1

open(unit=10, file="Staff_Names.txt")

do while(i < 65)

read(10,*) Staff_Name(i)
print*, Staff_Name(i)
i = i + 1

end do

close(10)
end Function Load_Names
Run Code Online (Sandbox Code Playgroud)

我正在使用Fortran 2008和gfortran.

Hig*_*ark 8

报告错误的常见原因是程序找不到它尝试打开的文件.有时,您对程序在运行时查找文件的目录的假设是错误的.

尝试:

  • 使用语句中的err=选项open编写代码以优雅地处理丢失的文件; 如果没有这个,程序会崩溃,正如你所观察到的那样;

要么

  • 使用该inquire语句来确定文件是否存在于程序正在查找的位置.

  • 使用`status ='old'`,否则文件不存在的'open`错误. (3认同)