xuanyz 发表于 2020-4-8 17:58:47

fortran 读取的txt文件出错?

想利用fortran 读取matlab生成的txt文件中的数据,采用下面的思路进行:
先在vs2010+ivf2011下建立了sample.txt并写入相关数据(具体内容见附件),利用下面的程序调试成功读取了文件内容并且显示在窗口。
接着利用matlab生成同样内容和数据类型的的文件,命名为sample1.txt(具体内容见附件),
修改程序中的 infile="sample.txt" 一行为 infile="sample1.txt" 来实现读取matlab生成的txt文件内容,
但运行时总出错,提示错误信息如下:
             forrt1 severe (64)input conversion errorunit 408 file ...\...\sample1.txt
应该是读取文件是出错了,但查找了好半天,没有查出原因,请高手指教,谢谢了,

下面是调试的代码

       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

fcode 发表于 2020-4-8 19:18:52

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

代码就想这样,优美而性感。
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

xuanyz 发表于 2020-4-8 19:23:02

好的,感谢感谢
页: [1]
查看完整版本: fortran 读取的txt文件出错?