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
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 好的,感谢感谢
页:
[1]