Fortran Coder

查看: 7453|回复: 4
打印 上一主题 下一主题

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

[复制链接]

2

帖子

0

主题

0

精华

新人

F 币
17 元
贡献
6 点
楼主
发表于 2019-10-22 18:33:57 | 显示全部楼层

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

[Fortran] 纯文本查看 复制代码
program main  implicit none
  integer(kind=4),parameter :: n = 4
  real(kind=8)              :: a(n,n),b(n),x(n)
  integer(kind=4)           :: i, j, ioerr
  open(100,file='READ.TXT')
  read(100,*)
  do i = 1,n
          read(100,*)(a(i,j),j=1,n)
  end do
  read(100,*)
  do i = 1,n
          read(100,*)b(i)
  end do

  open(200,file='WRITE.txt')
  do i = 1, n
          write(200,"(*(f12.8,1x))")(a(i,j),j=1, n)
  end do
  write(200,"(/,4(f12.8,/))")b
  close(100)
  close(200)
end program main

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

test2.png

2

帖子

0

主题

0

精华

新人

F 币
17 元
贡献
6 点
沙发
发表于 2019-10-22 20:45:13 | 显示全部楼层

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

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

[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

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

test3.png
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-4 10:04

Powered by Tencent X3.4

© 2013-2024 Tencent

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