24小时热门版块排行榜    

查看: 3068  |  回复: 23

shixha

银虫 (小有名气)

[求助] fortran两个问题,文件中的空格,屏幕同一行覆盖输出

问题一,在文件总如下的数据,怎么读?可以用read(10,*)实现,但我前面还有字符串,所以怎么用格式控制符读取?
2888 1 0.0537094 0.3042080 0.2281860
9269 1 0.1542730 0.3637710 0.0239597
26883 1 0.4948280 0.3128810 0.2175420
15665 1 0.1308460 0.0832195 0.0741127
1513 1 0.4120060 0.4771680 0.1658080
17079 1 0.1477880 0.1364340 0.1343700

问题二,如何实现屏幕同一行覆盖输出?
如先输出
100 30%
然后输出200 31%,覆盖前面的内容,在同一行
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与应助! 2011-05-07 21:42:02
shixha(金币+2): 2011-05-08 00:09:20
第一个问题你没有说清楚,所以不知道你要干什么,至少应该给出数据,及你想要的结果……

第二个问题,可以试一下下面的代码:
CODE:
program test

   character(len=20) :: a, b
   character*1 creturn ! code::
   
   a = '100 30%'
   b = '200 31%'
   creturn = achar(13) ! generate carriage return
   
   write( * , '(a,a)' , advance='no' ) creturn , a
   write( * , '(a,a)' , advance='no' ) creturn , b
   
end program test

» 本帖已获得的红花(最新10朵)

2楼2011-05-07 18:12:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shixha

银虫 (小有名气)

引用回帖:
Originally posted by snoopyzhao at 2011-05-07 18:12:15:
第一个问题你没有说清楚,所以不知道你要干什么,至少应该给出数据,及你想要的结果……

第二个问题,可以试一下下面的代码:

[code]
program test

   character(len=20) :: a, b
   character*1 cret ...

试了下,成功了,为什么用ascii的回车,这样就可以使指针回到屏幕行头嘛?不是很理解。


第一个问题是这样的,我想从文件中导入数据,到数组中。文件的结构如下,5列,前面两个是integer的,后面三个是real的,real数据可能小数位数不一致,如何读取,能够用格式控制符实现,不要用read(10,*)

25103 1 0.436324 0.100938 0.0298728
2888 1 0.0537094 0.304208 0.228186
9269 1 0.154273 0.363771 0.0239597
26883 1 0.494828 0.312881 0.217542
15665 1 0.130846 0.0832195 0.0741127
1513 1 0.412006 0.477168 0.165808
17079 1 0.147788 0.136434 0.13437
23869 1 0.0371001 0.0639775 0.0341563
29274 1 0.131698 0.478297 0.14099
783 1 0.388908 0.340938 0.0679263
.......................
3楼2011-05-07 22:15:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by shixha at 2011-05-07 22:15:47:
试了下,成功了,为什么用ascii的回车,这样就可以使指针回到屏幕行头嘛?不是很理解。


第一个问题是这样的,我想从文件中导入数据,到数组中。文件的结构如下,5列,前面两个是integer的,后面三个是rea ...

都要,还是只要后面三列……
4楼2011-05-07 22:20:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
Originally posted by shixha at 2011-05-07 22:15:47:
试了下,成功了,为什么用ascii的回车,这样就可以使指针回到屏幕行头嘛?不是很理解。


第一个问题是这样的,我想从文件中导入数据,到数组中。文件的结构如下,5列,前面两个是integer的,后面三个是rea ...

既然小数点位数可能不一样,如何格式化读取呢?如果你的数据不是按特定格式的话,就不可能格式化读取。

通常采用的办法就是用字符串和内部文件结合在一起处理,这样可能比较快一些……

其实 read(10,*) 挺好啊,把所有的数先用 real 读入,然后你再折腾就好了……
5楼2011-05-07 22:27:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shixha

银虫 (小有名气)

引用回帖:
Originally posted by snoopyzhao at 2011-05-07 22:27:38:
既然小数点位数可能不一样,如何格式化读取呢?如果你的数据不是按特定格式的话,就不可能格式化读取。

通常采用的办法就是用字符串和内部文件结合在一起处理,这样可能比较快一些……

其实 read(10,*)  ...

我是用格式化和read(10,*)交替读取的,感觉太冗长了,因为周期性出现字符串的,非常感谢!!!
6楼2011-05-08 00:25:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by shixha at 2011-05-08 00:25:14:
我是用格式化和read(10,*)交替读取的,感觉太冗长了,因为周期性出现字符串的,非常感谢!!!

你上面给出的数据中没有字符串啊……
7楼2011-05-08 07:22:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与应助! 2011-05-09 17:41:30
我想是不是可以这样
CODE:
read(10, '(A, X, A)') str, data
read(data,*) your, datas

8楼2011-05-08 08:51:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by shixha at 2011-05-07 22:15:47:
试了下,成功了,为什么用ascii的回车,这样就可以使指针回到屏幕行头嘛?不是很理解。


第一个问题是这样的,我想从文件中导入数据,到数组中。文件的结构如下,5列,前面两个是integer的,后面三个是rea ...

ascii 的回车,表示 Go to the beginning of the current line,所以,利用这一特性,可以模拟你的要求,呵呵……
9楼2011-05-08 10:12:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by holmescn at 2011-05-08 08:51:16:
我想是不是可以这样
CODE:
read(10, '(A, X, A)') str, data
read(data,*) your, datas


这个要求 str 的长度要固定,否则会出问题……
10楼2011-05-08 10:16:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 shixha 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 我不理解! +5 Edward_pc 2026-08-26 8/400 2026-08-26 15:21 by climap
[基金申请] 2026国自然函评费到账 +22 羊腰板 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 只有每年这种时候来逛逛小木虫 +26 yaoyewhu2008 2026-08-20 28/1400 2026-08-26 13:49 by zzuzxg
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +4 yuleib84 2026-08-26 5/250 2026-08-26 13:40 by yuleib84
[基金申请] 系统查不到 +9 董八千 2026-08-26 9/450 2026-08-26 12:30 by yanmofang
[基金申请] 怎么查啊 +4 huang1991js 2026-08-26 4/200 2026-08-26 11:26 by panjy.cn
[基金申请] 国际合作可查了,中了面上 +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 范进中举一文的中心思想 +8 炎黄贵胄 2026-08-22 9/450 2026-08-26 07:47 by WASM
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 有没有大神帮我看看基金代码 28+4 1234567wang 2026-08-24 10/500 2026-08-25 19:15 by lfy8008
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +17 医学老男孩 2026-08-20 22/1100 2026-08-25 15:36 by 医学老男孩
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
信息提示
请填处理意见