Fortran Coder

查看: 8777|回复: 9
打印 上一主题 下一主题

[文件读写] 文件读取问题

[复制链接]

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
跳转到指定楼层
楼主
发表于 2016-4-12 14:25:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
尝试先把文件内容读入字符串,然后再从字符串里读取信息,但是没有成功。请高手指点!
1  0.1000E+01
2  0.1414E+01
3  0.1732E+01
4  0.2000E+01
5  0.2236E+01
6  0.2449E+01
7  0.2646E+01
8  0.2828E+01
9  0.3000E+01
10  0.3162E+01
这是待读取的文件数据
[Fortran] 纯文本查看 复制代码
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

这是读取的代码(尝试先读入字符串,再读取)但是没有成功,不知道错在哪里,请高手指点!


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

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
沙发
 楼主| 发表于 2016-4-12 15:31:33 | 显示全部楼层
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”中的,宽度应该一样吧?

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
板凳
 楼主| 发表于 2016-4-12 15:33:36 | 显示全部楼层
vvt 发表于 2016-4-12 15:13
你的文件每行的宽度不一样,无法使用直接方式读取。请用顺序方式读取

[mw_shl_code=fortran,true]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”中的,宽度应该一样吧?

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
地板
 楼主| 发表于 2016-4-12 18:59:07 | 显示全部楼层
vvt 发表于 2016-4-12 16:15
如果你确信宽度是一样的,那么请设置合理的 RecL 而不能是 512(除非你实际上就是512) ...

我现在想问一件事情:recl 应该如何确定?如果一行内容很多,是一个个数出来?

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
5#
 楼主| 发表于 2016-4-13 16:15:14 | 显示全部楼层
于鑫常青藤 发表于 2016-4-12 18:59
我现在想问一件事情:recl 应该如何确定?如果一行内容很多,是一个个数出来? ...

好,谢谢。你给我推荐一款大家常用的编辑器吧。

14

帖子

5

主题

0

精华

入门

F 币
72 元
贡献
44 点
6#
 楼主| 发表于 2016-4-14 22:21:30 | 显示全部楼层
fcode 发表于 2016-4-14 08:37
windows 下 notepad2,notepad++,Programmer's notepad,gvim,sublime
linux 下 vim,emacs,sublime ...

太感谢你了,不过哪一款软件可以实现fortran语言的自由折叠(任意一段代码)?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-18 10:47

Powered by Tencent X3.4

© 2013-2024 Tencent

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