回 帖 发 新 帖 刷新版面

主题:[讨论]数组名做为文件名打开的问题

部分源程序如下:
      READ(5,8886)(LABL(I),I=1,10)
8886  FORMAT(10A2)
      OPEN(ICART,FILE=LABL,IOSTAT=IOS,STATUS='NEW',RECL=64,ERR=99,
     *      FORM='UNFORMATTED',ACCESS='DIRECT',MAXREC=MREC)
99    WRITE(INPUT,9998) IOS
9998  FORMAT(19HFETCH IOSTAT ERROR ,I3)
输入lalblcldlelflglhlilj,运行后即显示FETCH IOSTAT ERROR  36还有生成的文件名是lalblcldlelflglhlilj,我的理解是应该生成10个不同的文件,文件名分别为la,lb,lc。。。请教大家是我的理解有误吗,还是源程序写的不对?

回复列表 (共6个回复)

沙发

Open 语句一次只能打开一个文件。

另外呢

File = LABL

的含义跟你如何定义 LABL 有关

板凳

[quote]Open 语句一次只能打开一个文件。

另外呢

File = LABL

的含义跟你如何定义 LABL 有关[/quote]
我加了几句描述:    
CHARACTER*2 LABL
DIMENSION LABL(10)
输入还是那二十个字符,最后生成的文件名变成了la,我都有点糊涂为什么源程序会那么写啊

3 楼

因为 LABL 是 2 字节的长度,因此文件名是 la

如果你想让他是 lalblcldlelflglhlilj

请定义为 character( Len = 20 )

如果你想让他分别打开 10 个文件,请循环 Open

我不知道源代码为什么那么写,如果你想知道,请问源代码的作者

4 楼

[quote]因为 LABL 是 2 字节的长度,因此文件名是 la

如果你想让他是 lalblcldlelflglhlilj

请定义为 character( Len = 20 )

如果你想让他分别打开 10 个文件,请循环 Open

我不知道源代码为什么那么写,如果你想知道,请问源代码的作者[/quote]
谢谢姐姐回答

5 楼

围观群主姐姐

6 楼

姐姐~~~~~姐~~~~~喔也:)董兄好YD:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册