Fortran Coder

查看: 81|回复: 5

[求助] 在Fortran90中调用一个可执行程序‘name.exe’,如何给...

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
1 点
发表于 2022-11-22 15:01:50 | 显示全部楼层 |阅读模式
如图,name.exe是一个命令行程序没有界面,需要在命令行中输入文件名称'file.txt',按下回车键才可执行程序,请问怎么能用Fortran90实现呢?另外call system这种语句的具体格式是什么呢?有没有可以学习的资料?查了好久都没找到,请各位大神帮忙!!

name.exe窗口

name.exe窗口

vs2013代码界面

vs2013代码界面


648

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
379 元
贡献
186 点

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

发表于 2022-11-22 16:40:59 | 显示全部楼层
本帖最后由 楚香饭 于 2022-11-22 16:51 编辑

call system("echo file.txt>a.inp & name.exe <a.inp & del a.inp")

你可以去了解操作系统的命令行规则。这事和 system 函数没啥关系,和Fortran更没啥关系。
它就是让操作系统执行一个命令行指令而已。写法规则遵循操作系统的规定。(windows和linux可能有差异)

4

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
1 点
 楼主| 发表于 2022-11-23 15:00:10 | 显示全部楼层
楚香饭 发表于 2022-11-22 16:40
call system("echo file.txt>a.inp & name.exe

原来是这样。。。我说怎么找遍Fortran的教材都没有相关资料,多谢大神指导

4

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
1 点
 楼主| 发表于 2022-11-23 19:08:50 | 显示全部楼层
楚香饭 发表于 2022-11-22 16:40
call system("echo file.txt>a.inp & name.exe

想再请教您一个问题,如果想循环调用name.exe来计算file1.txt、file2.txt、file3.txt、、、这件事可以用Fortran实现吗?因为我发现call system("里面的元素不能在Fortran中声明定义")
于是我想了个笨办法:
call system("echo file1.txt>a.inp & name.exe <a.inp & del a.inp")
call system("echo file2.txt>a.inp & name.exe <a.inp & del a.inp")
call system("echo file3.txt>a.inp & name.exe <a.inp & del a.inp")



不知道您还有没有更好的方式?

648

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
379 元
贡献
186 点

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

发表于 2022-11-24 09:03:38 | 显示全部楼层
本帖最后由 楚香饭 于 2022-11-24 09:05 编辑

[Fortran] 纯文本查看 复制代码
character(len=16) :: c
Do i = 1 , 3
  write(c,*) i
  call system("echo file"//trim(adjustl(c))//".txt>a.inp & name.exe <a.inp & del a.inp")
End Do

4

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
1 点
 楼主| 发表于 2022-11-24 10:14:36 | 显示全部楼层
本帖最后由 jellynce_w 于 2022-11-24 10:17 编辑
楚香饭 发表于 2022-11-24 09:03
[mw_shl_code=fortran,true]character(len=16) :: c
Do i = 1 , 3
  write(c,*) i

太强了!!!万分感谢您百忙之中抽出的时间!!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2022-12-9 03:49

Powered by Tencent X3.4

© 2013-2022 Tencent

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