【发布时间】:2012-11-30 09:27:25
【问题描述】:
GCC 4.6 版
问题:要找到一种从命令行向可执行文件输入参数的方法,比如a.out,更具体地说是输入一个双精度数字数组。
尝试:使用标准中较旧的READ(*,*) 命令:
程序test.f -
PROGRAM MAIN
REAL(8) :: A,B
READ(*,*) A,B
PRINT*, A+B, COMMAND_ARGUMENT_COUNT()
END PROGRAM MAIN
执行——
$ gfortran test.f
$ ./a.out 3.D0 1.D0
这不起作用。经过一番反省,发现
$./a.out
3.d0,1.d0
4.0000000000000000 0
确实有效,但是第二行是输入提示,没有达到单行完成的目的。此外,COMMAND_ARGUMENT_COUNT() 表明输入到输入提示中的数字并不真正算作“命令行参数”,这与 PERL 不同。
【问题讨论】:
-
你可以做 'echo "3 1" | a.out' 与您的代码。我不建议这样做,但也许这可以帮助您了解 read(*,*) 的作用。
-
它确实有效!谢谢@george。我确实尝试过
./a.out | echo '3.1d0 1.d0'earlier .. 但它没有用。这对我的目的更好,因为这种方式不需要指定格式,这对我来说看起来更自然..和一般!
标签: command-line fortran