Fortran Coder

标题: 在Fortran90中调用一个可执行程序‘name.exe’,如何给... [打印本页]

作者: jellynce_w    时间: 2022-11-22 15:01
标题: 在Fortran90中调用一个可执行程序‘name.exe’,如何给...
如图,name.exe是一个命令行程序没有界面,需要在命令行中输入文件名称'file.txt',按下回车键才可执行程序,请问怎么能用Fortran90实现呢?另外call system这种语句的具体格式是什么呢?有没有可以学习的资料?查了好久都没找到,请各位大神帮忙!!




作者: 楚香饭    时间: 2022-11-22 16:40
本帖最后由 楚香饭 于 2022-11-22 16:51 编辑

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

你可以去了解操作系统的命令行规则。这事和 system 函数没啥关系,和Fortran更没啥关系。
它就是让操作系统执行一个命令行指令而已。写法规则遵循操作系统的规定。(windows和linux可能有差异)
作者: jellynce_w    时间: 2022-11-23 15:00
楚香饭 发表于 2022-11-22 16:40
call system("echo file.txt>a.inp & name.exe

原来是这样。。。我说怎么找遍Fortran的教材都没有相关资料,多谢大神指导
作者: jellynce_w    时间: 2022-11-23 19:08
楚香饭 发表于 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")



不知道您还有没有更好的方式?
作者: 楚香饭    时间: 2022-11-24 09:03
本帖最后由 楚香饭 于 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

作者: jellynce_w    时间: 2022-11-24 10:14
本帖最后由 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

太强了!!!万分感谢您百忙之中抽出的时间!!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2