从命令行将参数传递给可执行文件[重复]

Posted

技术标签:

【中文标题】从命令行将参数传递给可执行文件[重复]【英文标题】:Passing arguments to executable from command line [duplicate] 【发布时间】:2013-11-21 07:34:03 【问题描述】:

我正在尝试从命令行将参数传递给 Fortran 可执行文件。在 C 中实现此目的的示例程序是(取自 here):

#include <stdio.h>

int main (int argc, char *argv[])

  int count;

  printf ("This program was called with \"%s\".\n",argv[0]);

  if (argc > 1)
    
      for (count = 1; count < argc; count++)
    
      printf("argv[%d] = %s\n", count, argv[count]);
    
    
  else
    
      printf("The command had no other arguments.\n");
    

  return 0;

这个程序的输出是:

This program was called with "./fubar".
argv[1] = a
argv[2] = b
argv[3] = c

我现在的问题是,我将如何在 Fortran 中编写这个程序(以及这个功能)?我用谷歌搜索过,似乎只有 Fortran 2003 具有将参数传递给可执行文件的功能(这是否正确)?

【问题讨论】:

当然,对命令行参数的访问仅在 Fortran 2003 中标准化,但所有广泛使用的编译器都实现了该功能。你写的好像是 2004 年左右。尝试搜索“fortran 获取命令行参数” 谢谢。我现在正在学习Fortran,所以当我谷歌这些东西时,有时很难判断结果。不过你的建议很有帮助! 【参考方案1】:

供将来参考,正如上面@High Performance Mark 指出的那样,在Fortran 2003 中很容易做到这一点。下面的示例代码取自here,并显示了如何:

      PROGRAM test_get_command_argument
        INTEGER :: i
        CHARACTER(len=32) :: arg

        i = 0
        DO
          CALL get_command_argument(i, arg)
          IF (LEN_TRIM(arg) == 0) EXIT

          WRITE (*,*) TRIM(arg)
          i = i+1
        END DO
      END PROGRAM

【讨论】:

清洁器使用..COMMAND_ARGUMENT_COUNT()。为什么世界上的标准委员会不只是采用事实上的标准 getarg(),iaargc() 打败了我.. 对不起,如果这太简洁了...我的意思是使用 arg 计数作为循环限制而不是使用 if()exit 构造会更好 @george,别担心!这就是我向从业者学习的方式,即你:-)!感谢您指出这一点。

以上是关于从命令行将参数传递给可执行文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

nodemon :作为必需模块使用时将参数传递给可执行文件

如何将参数传递给 nodemon(或 node-supervisor)中的可执行文件?

C#将带有标志(/ arg1 / arg2)的参数传递给exe

如何从命令行将参数传递给 Makefile?

如何从命令行将参数传递给gradle

Windows 没有将命令行参数传递给从 shell 执行的 Python 程序