我想读取文件中的一行,其中包含三个实数,但不想推进指针。所以我写了以下代码:(TXT是代表我的文件的变量,它的值为80)
read(TXT, *, ADVANCE='NO') (numbers(i),i=1,3)
然而,我收到了一个错误信息,内容如下:
"error #6568: This use of the ADVANCE, SIZE, or EOR specifier is invalid."
那么,我应该怎样编写代码才能让它正确无误呢?
谢谢。
我想读取文件中的一行,其中包含三个实数,但不想推进指针。所以我写了以下代码:(TXT是代表我的文件的变量,它的值为80)
read(TXT, *, ADVANCE='NO') (numbers(i),i=1,3)
然而,我收到了一个错误信息,内容如下:
"error #6568: This use of the ADVANCE, SIZE, or EOR specifier is invalid."
那么,我应该怎样编写代码才能让它正确无误呢?
谢谢。
您只能在使用显式格式时才能使用advance='no'。原因如下:advance='no'仅避免转到下一个记录(请注意,文件指针仍然会在最后读取的值之后前进);但是对于有向列表(格式*),人们不知道您的读取语句涉及多少记录(例如,三个数字可能写在四行中)。
ADVANCE
只能用于从外部单元读取数据。我曾经尝试从字符数组中读取数据,结果失败了。 - pattivacek