Fortran Coder

读取txt文件中的数组再简单输出,报错说前后格式不匹配

查看数: 7451 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-10-22 16:39

正文摘要:

[Fortran] 纯文本查看 复制代码 PROGRAM MAIN         IMPLICIT REAL*8 (A-Z)     INTEGER::i,j,N,ioerr     PARAMETER (N=4)     REAL*8::A(N,N),b(N),x(N) &n ...

回复

这想必是 发表于 2019-10-23 15:28:22
2629416609@qq.c 发表于 2019-10-22 20:45
program test
  implicit none
  integer(kind=4),parameter  :: n = 4

非常感谢你的耐心解答,现在确实可以了,你的代码还有个小地方我不太明白,输出语句中的g0是什么意思呢?通用编辑符吗?为什么域宽是0呢?
2629416609@qq.c 发表于 2019-10-22 20:45:13

您需要确定从哪一行开始读,跳到那一行的方法不唯一

这想必是 发表于 2019-10-22 20:08
我按照你的意思改了,但是仍然有同样的问题,先谢谢你的热情帮助!感激!(回头看才发现有一些没用的定义 ...

[Fortran] 纯文本查看 复制代码
 PROGRAM MAIN
    
    IMPLICIT REAL*8 (A-Z)
    INTEGER::i,j,N,ioerr
    PARAMETER (N=4)
    REAL*8::A(N,N),b(N),x(N)
    
    OPEN(1,FILE='READ.TXT',FORM='FORMATTED',IOSTAT=IOERR)
    READ(1)((A(i,j),j=1,N),i=1,N)
    READ(1)(b(i),i=1,N)
    
    OPEN(2,FILE='WRITE.TXT')
    WRITE(2,10) X
10  FORMAT(4(/F12.8))
    
    END PROGRAM MAIN

test3.png (166.44 KB, 下载次数: 180)

test3.png
这想必是 发表于 2019-10-22 20:08:09
2629416609@qq.c 发表于 2019-10-22 18:33
program main  implicit none
  integer(kind=4),parameter :: n = 4
  real(kind=8)              :: a(n, ...

我按照你的意思改了,但是仍然有同样的问题,先谢谢你的热情帮助!感激!(回头看才发现有一些没用的定义忘了删掉,实在是不好意思。)
修改之后的代码是这样的
[Fortran] 纯文本查看 复制代码
program test
  implicit none
  integer(kind=4),parameter  :: n = 4
  real(kind=8)               :: b(n)
  integer(kind=4)            :: i
  open(100,file='READ.txt')
  open(200,file='WRITE.txt')
  !do i = 1, 5
  !        read(100,*)
  !end do
  read(100,"(4(/))")
  do i = 1,4
          read(100,*)b(i)
  end do
  write(*,"(4(g0,/))")b
  write(200,"(4(g0,/))")b
end program test


简化了一下,只对一列四个数字进行读取和输出,还是找不到问题出在哪,能再帮我看看么?
2629416609@qq.c 发表于 2019-10-22 18:33:57

你的问题在于没有显式书写读入格式

[Fortran] 纯文本查看 复制代码
    PROGRAM MAIN
    
    IMPLICIT REAL*8 (A-Z)
    INTEGER::i,N,ioerr
    PARAMETER (N=4)
    REAL*8::b(N)
    
    OPEN(11,FILE='READ.TXT',IOSTAT=IOERR)
    DO i=1,N
        READ(11) b(i)
    END DO
    
    OPEN(12,FILE='WRITE.TXT')
    DO i=1,N
        WRITE(12,10) b(i)
10      FORMAT(4(/F12.8))
    END DO
    
    CLOSE (11)
    CLOSE (12)
    
    END PROGRAM MAIN

test2.png (135.47 KB, 下载次数: 179)

test2.png

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 06:53

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表