我运行从Fortran源编译的程序:
./a.out N t
这里N和t定义了两个正整数。以下是此代码:
character(len=10) :: arg
call get_command_argument(1, arg)
read(arg,'(I10)') N
call get_command_argument(2, arg)
read(arg,'(I10)') t
接下来,我想做以下事项:如果我既不输入N也不输入t(即,如果arg,1为空),那么程序建议通过程序输入它们(我不知道什么是Fortran中的scanf模拟)。如何明确地做到这一点,你能帮忙吗?
答案 0 :(得分:4)
1)您的代码(即get_command_argument
)绝不是Fortran 77,而是Fortran 2003。
2)只需使用command_argument_count()
找出你得到的论点数。
if (command_argument_count()==0) then
do whatever you need to do
答案 1 :(得分:4)
如果我理解正确,你正在寻找像
这样的东西character(len=10) :: arg
call get_command_argument(1, arg)
if (trim(arg) == '') then
write(*,*) 'Please enter N:'
read(*,*) N
else
read(arg,'(I10)') N
end if
call get_command_argument(2, arg)
if (trim(arg) == '') then
write(*,*) 'Please enter t:'
read(*,*) t
else
read(arg,'(I10)') t
end if