Fortran Coder

查看: 19928|回复: 10
打印 上一主题 下一主题

[文件读写] 如何批量一次性输入全部参数?

[复制链接]

6

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
37 点

规矩勋章

跳转到指定楼层
楼主
发表于 2014-8-17 19:26:46 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 newboy198414 于 2014-8-19 19:52 编辑

各位好:刚接触fortran不久,属于皮毛的皮毛,就是了解些基本概念那种。遇到个问题,手头上有个程序,编译执行后需要交互式的执行,提示输入某项内容然后用户输入,在提示下一个内容在输入,最后计算给出结果。
但现在的问题是,需要计算N多个这种内容,每次需要输入的内容是事先已经知道的。
那么,如何能够让程序一次性将这些内容全部读入计算呢?
比如有个例子:读入a=1.0 读入b=2.0 程序计算c=a+b=3.0  现在我需要读入N多项a、b的值来计算。
如何将这些需要计算的数值一次性输入一次性计算呢,现在没办法重新编写程序来改变算法,源程序内容太多了,上千行代码了,只能是这种一次计算一个结果。

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

6

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
37 点

规矩勋章

11#
 楼主| 发表于 2014-8-21 00:40:28 | 只看该作者
本帖最后由 newboy198414 于 2014-8-21 07:36 编辑
百事可乐 发表于 2014-8-19 21:23
楼主采用了什么方法?何不说出来,与大家共勉?

正常情况下是要按照楚香饭的办法解决的。可我的程序有点特殊,是个死循环的程序,如果用户不主动终止,程序会一直运行,这和程序的计算目的是一致的。因此我这个只需要在命令行中定向输入input参数就可以得到正确的结果了[在下初学,之前不了解这种方式]。

评分

参与人数 1F 币 +5 贡献 +5 收起 理由
fcode + 5 + 5 分享有礼

查看全部评分

136

帖子

3

主题

0

精华

版主

F 币
1964 元
贡献
1677 点

帅哥勋章管理勋章爱心勋章新人勋章热心勋章元老勋章

10#
发表于 2014-8-20 08:32:52 | 只看该作者
百事可乐 发表于 2014-8-19 21:23
楼主采用了什么方法?何不说出来,与大家共勉?

饭饭的方法啊~

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
9#
发表于 2014-8-19 21:23:09 | 只看该作者
楼主采用了什么方法?何不说出来,与大家共勉?

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

8#
发表于 2014-8-19 20:36:23 | 只看该作者
是的,版主修改状态

6

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
37 点

规矩勋章

7#
 楼主| 发表于 2014-8-19 19:53:22 | 只看该作者
谢谢各位的帮助,问题已经解决了。是版主改状态吗?

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
6#
发表于 2014-8-18 09:47:30 | 只看该作者
windows命令行重定向。

exe名称 < input.txt 既可

6

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
37 点

规矩勋章

5#
 楼主| 发表于 2014-8-18 09:22:31 | 只看该作者
本帖最后由 newboy198414 于 2014-8-18 09:23 编辑
楚香饭 发表于 2014-8-17 20:57
有多个解决办法:
1.把程序改成一个子程序,将输入都改成参数。然后循环调用这个子程序。
2.另外写一个调用 ...

谢谢您的帮助。源程序共有22个文件、一个主程序的,其他全是函数和子程序。你的意思是我需要将主程序改写成子程序,然后调用子程序,将原来需要输入的变量作为子程序的变量传递是吗?然后循环调用N次子程序完成计算。最后的效果是,我只需要将原来输入的变量,写在一个输入文件如input.txt,然后用调用程序读入该输入文件完成计算是吗?    这个程序有验证文件,我见到其过程也是将输入变量写在了一个输入文件中,(比如截图内容),而且还将计算结果写到了XX.out输出文件中,只是无法知道具体是怎么实现的!

输入文件.PNG (26.93 KB, 下载次数: 537)

输入文件

输入文件

6

帖子

1

主题

0

精华

入门

F 币
68 元
贡献
37 点

规矩勋章

地板
 楼主| 发表于 2014-8-18 09:05:02 | 只看该作者
本帖最后由 newboy198414 于 2014-8-18 09:06 编辑
珊瑚虫 发表于 2014-8-17 19:51
你的问题写了很多,但我的建议是如果你的程序不涉密的话 可以发上来,
这样可以直接告诉你怎么改。
否则 只 ...

谢谢您的帮助。这个还真有些涉密(其实没什么东西可以保密的,但凡事要考虑周全,单位有规定),不方便将源代码上传。程序运行的界面如图,我需要依次输入N、3、60、4、15.10、7.2、2.12、1.32、39.74、120、3.441,然后程序计算结果为K1值和K1R值。继续输入N、N,然后就进入下一个计算过程,和上面的内容相同,只是输入数值不同而已。因为需要计算N多组数据,现在我想知道如何将这些需要计算的内容一次性读入,并完成计算。

运行图.jpg (130.99 KB, 下载次数: 548)

程序运行结果

程序运行结果

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

板凳
发表于 2014-8-17 20:57:20 | 只看该作者
有多个解决办法:
1.把程序改成一个子程序,将输入都改成参数。然后循环调用这个子程序。
2.另外写一个调用程序,循环把输入参数写入文件(例如input.txt)。通过重定向调用该程序。(  a.exe < input.txt)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-23 15:36

Powered by Tencent X3.4

© 2013-2024 Tencent

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