【发布时间】:2011-09-22 09:31:39
【问题描述】:
我是 Fortran 新手。我希望能够读取文本文件并将其内容保存在各个变量中。我找到了一个非常有用的 Fortran 教程 (http://www.math.hawaii.edu/~hile/fortran/fort7.htm#read),我正在尝试遵循其中列出的示例之一。具体来说,我制作了一个名为 data.txt 的文本文件,其中包含以下文本:
1.23, 4.56, 7.89
11, 13, "Sally"
我已将此文本文件保存在当前目录中。然后,我创建了一个包含以下代码的文件 test.f90(也将其保存在我的当前目录中):
PROGRAM test
IMPLICIT NONE
REAL :: x, y, z
INTEGER :: m, n
CHARACTER first*20
OPEN(UNIT = 7, FILE = "data.txt")
READ(7,*) x, y, z
READ(7,*) m, n, first
PRINT *, x
PRINT *, y
PRINT *, z
PRINT *, m
PRINT *, n
PRINT *, first
END PROGRAM test
我正在使用 GNU Fortran 编译器,我认为它至少包含了 Fortran95 之前的功能,包括 Fortran95。上面的代码似乎可以编译,至少使用默认设置)。但是当我运行生成的可执行文件时,我收到以下错误消息:
At line 10 of file test.f90 (unit = 7, file = 'data.txt')
Fortran runtime error: End of file
第 10 行是 READ(7,*) m, n, first 行。你能帮我看看我在上面的代码中做错了什么吗?
【问题讨论】:
-
用另一个单元号 ( > 10 ) 试试。也许您的编译器将单元 7 用于预连接设备。
-
@eriktous:非常感谢您抽出宝贵时间,但不幸的是,这并不能解决问题(至少在我使用 15 为单位时)。不过,谢谢您的建议;很高兴知道编译器可以将 10 或更少的单位用于预连接的设备。我会记住这一点。谢谢!