回 帖 发 新 帖 刷新版面

主题:字符串读写请教

   想请教大家一个fortran编程的问题。  我想将一个长字符串中用逗号分隔开的元素分离出来,
我的思路是通过内部文件直接读取,请问这样是否可行,如果可行,我的程序哪里写的不正确?
谢谢大家!
 
       IMPLICIT NONE
C--------------              PARAMETER
      INTEGER, PARAMETER :: CHAR_SIZE =10    ! 定义文本读写字符串长度
      
C--------------             VARIABLE
      CHARACTER INFILE1*CHAR_SIZE               !定义文本读写字符串长度
 CHARACTER INFILE2*CHAR_SIZE               !定义文本读写字符串长度
      CHARACTER INFILE3*CHAR_SIZE               !定义文本读写字符串长度
      CHARACTER INFILE4*CHAR_SIZE
      CHARACTER INFILE5*CHAR_SIZE

      INFILE1='XD,YF,LXL,PHY'
      READ(INFILE1,100)INFILE2,INFILE3,INFILE4,INFILE5
100   FORMAT(4A10)
      WRITE(*,*)INFILE2
      WRITE(*,*)INFILE3
 WRITE(*,*)INFILE4
      WRITE(*,*)INFILE5
      END

 

回复列表 (共1个回复)

沙发

可行。

问题1:
INFILE1 长度是10,但给了13个字符。可把
 CHARACTER INFILE1*CHAR_SIZE  
改为
 CHARACTER INFILE1*13

问题2:
用自由格式读入。即:
READ(INFILE1,100)INFILE2,INFILE3,INFILE4,INFILE5 
 100   FORMAT(4A10)
改为
READ(INFILE1,*)INFILE2,INFILE3,INFILE4,INFILE5

我来回复

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