回 帖 发 新 帖 刷新版面

主题:有关read命令下的格式问题

这是程序
program main
integer  NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
READ(5,900) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
900    FORMAT(16I5) !I5(长度5的整数)
    WRITE(6,905) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
905    FORMAT (//1X,'NPOIN =',I5,3X,'NELEM =',I5,3X,7HNBOUN =,I5,3X,&
    7HNMATS =,I5,3X,//1X,7HNPROP =,I5,3X,7HNNODE =,I5,3X,7HNDOFN =,&
           I5,3X,7HNDIME =,I5,//1X,7HNSTRE =,I5)
END
输出结果如图1

回复列表 (共6个回复)

沙发


具体有什么疑问呢?

板凳



回帖怎么无法贴图了。。。


我输入的是1 2 3 4 5 6 7 8 9九个数据,分别对应NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
这九个变量,所以我想要的输出应该是
NPOIN=1 NELEM=2,.....NSTRE=9
这样的效果。

后来我把程序改成这样了
program main
integer  NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
READ(5,*) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
!900    FORMAT(16I5) 
    WRITE(6,905) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
  905    FORMAT (//1X,'NPOIN =',I5,3X,'NELEM =',I5,3X,7HNBOUN =,I5,3X,&
    7HNMATS =,I5,3X,//1X,7HNPROP =,I5,3X,7HNNODE =,I5,3X,7HNDOFN =,&
           I5,3X,7HNDIME =,I5,//1X,7HNSTRE =,I5)
end
结果就得到了我想要的结果,看来问题出在
READ(5,900) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
900    FORMAT(16I5) !I5(长度5的整数)
上面。
根据我的理解,这个命令是“限定输入长度为5以下的整数”,怎么会造成图1的那种效果呢?

3 楼


 READ(5,900) NPOIN,NELEM,NBOUN,NMATS,NPROP,NNODE,NDOFN,NDIME,NSTRE
 900    FORMAT(16I5) !I5(长度5的整数)

输入的数据要保证是5个这节长度。  如要输入“1”,只有一位数据。所以1的前面在补充4个空格。“口口口口1”,“口口口口2”…………

4 楼

那输入结果应该是
NPOIN=    1,NELEM=    2,NBOUN=    3,NMATS    4,NPROP=    5,
NNODE=    6,NDOFN=    7,NDIME=    8,NSTRE=    9
这个样子的吧。也不应该是图1那样的吧。

5 楼

read就不必加format了嘛,直接输入不就得了

6 楼


这是个解决办法,呵呵,谢谢了

我来回复

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