爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4867|回复: 8

[求助] FORTRAN 读取txt数据错误 fmt一定要设为*

[复制链接]

新浪微博达人勋

发表于 2014-1-10 22:45:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 0708011 于 2014-1-10 22:48 编辑

        请教大神 我用一个EOF的fortran程序读取txt文本 为什么read语句一定要有个 * 才能顺利读取。就像这样。

open(11,file='C:\vwnd.txt',form='formatted',access='SEQUENTIAL')
read(11,*)   ((f(i,it),i=1,N),it=1,M)
close(11)
这是对的,没问题。

如果read改成 read(11)   ((f(i,it),i=1,N),it=1,M) 那就会有错误。
如下:
forrtl: severe (256): unformatted I/O to unit open for formatted transfers, unit 11, file C:\vwndEOF.txt

错误

错误

我知道*就是 是默认的格式的fmt的意思,那 不写应该一样的,我打开时已经是'formatted'打开了,请问为什么会读取出错啊。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-1-11 08:34:41 | 显示全部楼层
原因在于txt的文本文件本身就是有格式的,因此你读取的时候只可以缺省(不是默认格式哦),用"*"代替,如果不写表示读取的是无格式文件,也就是我们通俗说的“二进制”文件。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-11 10:26:05 | 显示全部楼层

谢谢了 我查了fortran书确实是这样。
'*' 是表控输入,是不需要指定格式的输入,也称自由格式输入。FMT此选项只对有格式文件使用,对无格式文件不需要设置格式说明。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-11 12:41:27 | 显示全部楼层
遇到 I/O问题  多去看看表控输入输出的内容  一般问题都会迎刃而解
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-11 14:34:43 | 显示全部楼层
初学者,看看任何一本书里面输入输出的章节就很明了了。
多翻书啊!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-11 15:30:52 | 显示全部楼层
form='binary'与,*两者选其一
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-19 20:37:14 | 显示全部楼层
真后悔FORTRAN没学好,现在学习很吃力啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-25 19:13:30 | 显示全部楼层
太感谢楼主了,不然我一直没有发现我的错误
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-25 20:36:26 | 显示全部楼层
谢谢楼主~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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