如何在 Fortran 中将字符转换为整数?
How to convert character to integer in fortran?
如何操作命令行参数?
例如
te.f90
program print_
integer :: i
character(len = 32) :: arg
i = 1
Do
call get_command_argument(i, arg)
if ( len_trim(arg) == 0) exit
write(*,*) trim(arg)
write(*,*) trim(arg)**2
i = i + 1
end do
end program print_
te.sh
#!/bin/bash
for (( x = 1; x <=3; x++ ))
do
./te $x
done
我将 $x
作为 arg
传递,类型为 character
,但我想在执行 ./te.sh
时将 arg
作为数字进行操作,我收到错误升级 Operands of binary numeric operator '**' at (1) are CHARACTER(1)/INTEGER(4)
.
怎么办?
您需要将字符串 (arg) 转换为整数。
program print_
integer :: i, iarg
character(len = 32) :: arg
i = 1
Do
call get_command_argument(i, arg)
if ( len_trim(arg) == 0) exit
write(*,*) trim(arg)
read(arg,"(I)") iarg
write(*,*) iarg**2
i = i + 1
end do
end program print_
如何操作命令行参数? 例如
te.f90
program print_
integer :: i
character(len = 32) :: arg
i = 1
Do
call get_command_argument(i, arg)
if ( len_trim(arg) == 0) exit
write(*,*) trim(arg)
write(*,*) trim(arg)**2
i = i + 1
end do
end program print_
te.sh
#!/bin/bash
for (( x = 1; x <=3; x++ ))
do
./te $x
done
我将 $x
作为 arg
传递,类型为 character
,但我想在执行 ./te.sh
时将 arg
作为数字进行操作,我收到错误升级 Operands of binary numeric operator '**' at (1) are CHARACTER(1)/INTEGER(4)
.
怎么办?
您需要将字符串 (arg) 转换为整数。
program print_
integer :: i, iarg
character(len = 32) :: arg
i = 1
Do
call get_command_argument(i, arg)
if ( len_trim(arg) == 0) exit
write(*,*) trim(arg)
read(arg,"(I)") iarg
write(*,*) iarg**2
i = i + 1
end do
end program print_