Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 将字符串转换为整数_Fortran_String Conversion - Fatal编程技术网

Fortran 将字符串转换为整数

Fortran 将字符串转换为整数,fortran,string-conversion,Fortran,String Conversion,这是对我的建议的后续行动 我正在将命令行参数(arg)读入Fortran程序。然后我想将arg的值存储为一个整数ichar()不起作用 这似乎有点基本,所以很明显我做错了什么。有什么提示吗 program test_get_command_argument integer :: i,j character(len=32) :: arg i = 0 do call get_command_argument(i,arg) if (LEN_TRIM

这是对我的建议的后续行动

我正在将命令行参数(
arg
)读入Fortran程序。然后我想将
arg
的值存储为一个整数<代码>ichar()不起作用

这似乎有点基本,所以很明显我做错了什么。有什么提示吗

program test_get_command_argument
   integer :: i,j
   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

   j = ichar(arg)


end program
您希望使用“内部文件”功能。 您应该有一个类似于
read(arg,*)j
的语句。 这将读取字符变量
arg
,就像它是一个文件一样
并将结果存储到
j

这不是答案,而是扩展注释:

这是一种奇怪的循环命令行参数的方式。直截了当和明显的错误是什么

do i = 1, command_argument_count()
   call get_command_argument(i,arg)
   ! do funky stuff    
end do

明白了,天哪,Fortran和C有很大不同;-)@HighPerformanceMark不会
命令\u argument\u count()
只返回参数的数量(我读过),但我仍然希望使用参数的实际值。我只是尝试了一下。我在调用get_command_argument()后的一行中放入了read(arg),(I32)’j,但在运行时我得到了错误:list inputGet it中的项1的整数不正确,我太习惯C中的argc和argv了,以至于我完全忽略了get_command_argument()中的第一个参数实际上是对可执行文件的调用,duh.:-)取决于第一个参数的含义…fortran通常是基于1的,而不是像C那样基于0的
get\u command\u参数
是我见过的唯一例外,其中
0
表示程序名,
1
表示发送到程序的第一个参数。是的,这也是我迄今为止(在我很短的fortran职业生涯中)见过的唯一例外;-)我同意。在中,我们在上找到了此示例。