爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3052|回复: 6

[求助] fortran 读入时间 其中的/怎么处理?

[复制链接]

新浪微博达人勋

发表于 2015-6-25 15:14:53 | 显示全部楼层 |阅读模式

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

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

x
用fortran读入数据如:
2000/1/1 0:00:00,5.3,4.5
我写的程序是:
character*8 time,hour
  real un,cn

read(1,*) time,hour,un,cn
read(time(1:4),*) year
read(time(6:6),*) month
read(time(8:8),*) day

读不出来,刚刚开始用fortran,求大神指导~

貌似是读入字符串time时仅能读入到2000,/之后的就不能读入了,怎么处理呢?
谢谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-25 15:21:23 | 显示全部楼层
/是终止符,具体你查查书,以前也遇到过这个问题。不难解决。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-25 15:34:12 | 显示全部楼层
如果没有指定读入数据的格式,fortran读到 / 符号就会终止。指定一下读入的格式就可以了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2015-6-25 15:54:00 | 显示全部楼层
可以试试定义一个/的字符去读取,或者在文本文件里面替换掉。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-26 12:32:40 | 显示全部楼层
read(1,*) time,hour,un,cn
问题出在这一行。
你可以print*,time  看看就知道了。
fortran认为/是换行符或者行终止符,所以读到这就不读了。

你得改成read(1,'(a8,1x,a9,2*(1x,f3.1))')time,hour,un,cn
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-26 12:58:52 | 显示全部楼层
本帖最后由 刷牙 于 2015-6-26 13:02 编辑
smile2wind 发表于 2015-6-26 12:32
read(1,*) time,hour,un,cn
问题出在这一行。
你可以print*,time  看看就知道了。

根据楼上的说法,我试了一下,是可行的
program main
implicit none
character*8 time,hour
real un,cn
open(100,file='time.txt')
read(100,'(a8,1x,a7,2(1x,f3.1))')time,hour,un,cn
print*, time,hour,un,cn
end
未命名.PNG
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-26 19:06:09 | 显示全部楼层
谢谢!解决了~{:eb502:}
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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