爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: 自由行

[源代码] fortran提取txt里的一列数据

[复制链接]

新浪微博达人勋

发表于 2016-3-29 11:12:01 | 显示全部楼层
自由行 发表于 2016-3-29 11:03
这样读入是无效的喃,

你自己调试一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-29 11:14:27 | 显示全部楼层
自由行 发表于 2016-3-29 10:57
能请问下我数据有指数型和小数,如果是控制格式f8.5读入的话,指数形式就变成了小数形式。不知道该怎么处 ...


指数是指科学计数法吗?你可以看看《Fortran 95程序设计》关于格式化输出的内容,讲得比较详细
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-29 11:17:13 | 显示全部楼层
小傅之追梦 发表于 2016-3-29 11:11
character*12 duo
real dat
open(1,file='22.txt')

三楼的方法其实不如你这个可靠,因为如果括号里面的位数一直在变就没法写format。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-29 11:18:07 | 显示全部楼层
跫跫fish 发表于 2016-3-29 11:14
指数是指科学计数法吗?你可以看看《Fortran 95程序设计》关于格式化输出的内容,讲得比较详细

是1e+36这种,txt里面还有1e+02,读入的时候是小数形式读入,所以指数形式出错了,不知道该怎么办
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-29 11:19:21 | 显示全部楼层
跫跫fish 发表于 2016-3-29 11:14
指数是指科学计数法吗?你可以看看《Fortran 95程序设计》关于格式化输出的内容,讲得比较详细

是1E+36这种形式的,读入的时候是小数形式读入的,所以读入的指数形式就会出错,不知道该怎么办
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-29 11:22:12 | 显示全部楼层
lqouc 发表于 2016-3-29 11:17
三楼的方法其实不如你这个可靠,因为如果括号里面的位数一直在变就没法写format。

是有这个问题小数位数有些不统一,读入也会出点错,所以很纠结不知道该怎么书写
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-29 11:26:56 | 显示全部楼层
小傅之追梦 发表于 2016-3-29 11:11
character*12 duo
real dat
open(1,file='22.txt')

谢谢您的解答,但是我有个疑问就是每一行都有字符串,这个要怎么做循环处理喃,可能喔编程基础没有那么好
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-29 11:31:41 | 显示全部楼层
小傅之追梦 发表于 2016-3-29 11:11
character*12 duo
real dat
open(1,file='22.txt')

谢谢亲的解答,是第一列没有输出了,但是第二列我原本数据有指数和小数,咱们是小数形式读入,所以输出的结果有问题,这个该怎么办喃
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-4-18 14:20:19 | 显示全部楼层
小傅之追梦 发表于 2016-3-29 11:11
character*12 duo
real dat
open(1,file='22.txt')

您好,我的数据是这样的:
1961        1        1720
1961        2        3060
1961        3        16140
1961        4        8970
1961        5        12890
1961        6        8820
1961        7        17320
1961        8        7840
1961        9        11910
1961        10        15290
1961        11        11720
1961        12        3090
现在我需要读取第3列数据,按照您的提示,我的输出格式是这样的:
open(21,file='e:\zhandian.txt')
read(21,'(A8,i6)')duo,aa  
读取后变成这样了,请问我该怎么改啊:
1961   1     720
1961   2  ******
1961   3      60
1961   4  ******
1961   5    6140
1961   6  ******
1961   7     970
1961   8  ******
1961   9    2890
1961  10  ******
1961  11     820
1961  12  ******
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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