文件读取问题
尝试先把文件内容读入字符串,然后再从字符串里读取信息,但是没有成功。请高手指点!10.1000E+01
20.1414E+01
30.1732E+01
40.2000E+01
50.2236E+01
60.2449E+01
70.2646E+01
80.2828E+01
90.3000E+01
100.3162E+01
这是待读取的文件数据
program ex33
implicit none
integer :: a, b, fileid, k, error
character (len=512):: str
character (len=512) :: filename="ex32.txt"
open (newunit=fileid, file=filename, form="formatted", access="direct", recl=512, status="old")
do while (.true.)
read (*,*) k
read (fileid, "(a512)", rec=k, iostat=error) str
if (error/=0) exit
read (str, *) a, b
write (*,*) a, b
end do
close (fileid)
end
这是读取的代码(尝试先读入字符串,再读取)但是没有成功,不知道错在哪里,请高手指点!
你的文件每行的宽度不一样,无法使用直接方式读取。请用顺序方式读取
program ex33
implicit none
integer :: i , a, b, fileid, k, error
character (len=512):: str
character (len=512) :: filename="ex32.txt"
open (newunit=fileid, file=filename , status="old") !//采用有格式顺序读写
do
read (*,*) k
rewind(fileid)
do i = 1 , k - 1
read( fileid , * )
end do
read ( fileid, "(a512)", iostat=error ) str
if (error/=0) exit
read (str, *) a, b
write (*,*) a, b
end do
close (fileid)
end open (newunit=fileid, file=filename, status="new",access="sequential", form="formatted", recl=16)
do i=1,10,1
!write (fileid,"(i2, 2xE10.4)") i, sqrt(real(i))
end do
close(fileid)
带读取的文件是按照统一的格式输出到“ex32.txt”中的,宽度应该一样吧? vvt 发表于 2016-4-12 15:13
你的文件每行的宽度不一样,无法使用直接方式读取。请用顺序方式读取
program...
open (newunit=fileid, file=filename, status="new",access="sequential", form="formatted", recl=16)
do i=1,10,1
!write (fileid,"(i2, 2xE10.4)") i, sqrt(real(i))
end do
close(fileid)
带读取的文件是按照统一的格式输出到“ex32.txt”中的,宽度应该一样吧? 如果你确信宽度是一样的,那么请设置合理的 RecL 而不能是 512(除非你实际上就是512) vvt 发表于 2016-4-12 16:15
如果你确信宽度是一样的,那么请设置合理的 RecL 而不能是 512(除非你实际上就是512) ...
我现在想问一件事情:recl 应该如何确定?如果一行内容很多,是一个个数出来? 有很多编辑器可以帮你数。选择一行,就会自动显示选择了多少个字符。 于鑫常青藤 发表于 2016-4-12 18:59
我现在想问一件事情:recl 应该如何确定?如果一行内容很多,是一个个数出来? ...
好,谢谢。你给我推荐一款大家常用的编辑器吧。 windows 下 notepad2,notepad++,Programmer's notepad,gvim,sublime
linux 下 vim,emacs,sublime fcode 发表于 2016-4-14 08:37
windows 下 notepad2,notepad++,Programmer's notepad,gvim,sublime
linux 下 vim,emacs,sublime ...
太感谢你了,不过哪一款软件可以实现fortran语言的自由折叠(任意一段代码)?
页:
[1]