Fortran Coder

查看: 9011|回复: 2
打印 上一主题 下一主题

[输入输出] fortran 读取的txt文件出错?

[复制链接]

32

帖子

9

主题

0

精华

专家

F 币
391 元
贡献
212 点
跳转到指定楼层
楼主
发表于 2020-4-8 17:58:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想利用fortran 读取matlab生成的txt文件中的数据,采用下面的思路进行:
先在vs2010+ivf2011下建立了sample.txt并写入相关数据(具体内容见附件),利用下面的程序调试成功读取了文件内容并且显示在窗口。
接着利用matlab生成同样内容和数据类型的的文件,命名为sample1.txt(具体内容见附件),
修改程序中的 infile="sample.txt" 一行为 infile="sample1.txt" 来实现读取matlab生成的txt文件内容,
但运行时总出错,提示错误信息如下:
             forrt1 severe (64)  input conversion error  unit 408 file ...\...\sample1.txt
应该是读取文件是出错了,但查找了好半天,没有查出原因,请高手指教,谢谢了,

下面是调试的代码
[Fortran] 纯文本查看 复制代码
       program main
       character*200 infile !输入文件名

!            !打开输入数据文件------------------ 
              infile="sample1.txt"
              !infile="sample.txt"
            open(408,file=infile,status='old',form='formatted')
            !---------------------------------------------------------------------------------------------

            !读取前7行数据并赋值给相应的变量--------------------------------------------------
            read(408,'(I)') M
            read(408,'(I)') N
            read(408,'(I)') iqpart
            read(408,'(I)') nhex
            read(408,'(f)') U
            read(408,'(f)') refr
            read(408,'(I)') nray

            close(408)

            write(*,*) M,N,iqpart
            write(*,*) nhex
            write(*,*) u,refr,nray

        end


sample.txt

1.06 KB, 下载次数: 4

sample.txt

sample1.txt

916 Bytes, 下载次数: 3

sample1.txt

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2020-4-8 19:18:52 | 只看该作者
1. 不写 Implicit None 的程序,都是耍流氓。
2. 读取文件,能用表控的时候坚决不用格式符。
3. 你的代码问题出在:sample1.txt 文件中 #  wind speed u=5.0 m 这一行的前面多了一个空格。
是的,这就是使用格式符读取文件的毛病所在。因此,推荐用表控格式。

代码就想这样,优美而性感。
[Fortran] 纯文本查看 复制代码
program main
  Implicit none
  character(len=200) :: infile = "sample1.txt" !输入文件名
  Integer :: M,N,iqpart,nhex,nray
  Real    :: U,REFR
  open(408,file=infile,status='old',form='formatted')
  read(408,*) M
  read(408,*) N
  read(408,*) iqpart
  read(408,*) nhex
  read(408,*) U
  read(408,*) refr
  read(408,*) nray
  close(408)
  write(*,*) M,N,iqpart
  write(*,*) nhex
  write(*,*) u,refr,nray
end program main

32

帖子

9

主题

0

精华

专家

F 币
391 元
贡献
212 点
板凳
 楼主| 发表于 2020-4-8 19:23:02 | 只看该作者
好的,感谢感谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-10 14:57

Powered by Tencent X3.4

© 2013-2024 Tencent

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