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_Fortran95 - Fatal编程技术网

将命令行参数解析为字符串以在Fortran中存储整数

将命令行参数解析为字符串以在Fortran中存储整数,fortran,fortran95,Fortran,Fortran95,我正在学习Fortran教程,但是下面的代码似乎不起作用。我试图从命令行读取一个2位数的数字,但是我在“TRIM(buffer)”中得到的错误单元规范必须是整数表达式或字符变量 INTEGER :: number CHARACTER(LEN=20) :: buffer buffer = "" CALL GET_COMMAND_ARGUMENT(1, buffer) READ(TRIM(buffer), FMT="(I2)") number 因此,据我所知,问题在于READ不确定TRIM的输出

我正在学习Fortran教程,但是下面的代码似乎不起作用。我试图从命令行读取一个2位数的数字,但是我在“TRIM(buffer)”中得到的错误单元规范必须是整数表达式或字符变量

INTEGER :: number
CHARACTER(LEN=20) :: buffer

buffer = ""
CALL GET_COMMAND_ARGUMENT(1, buffer)
READ(TRIM(buffer), FMT="(I2)") number
因此,据我所知,问题在于READ不确定TRIM的输出是否会返回字符值。我是否可以声明它是一个角色,或者是否有其他方法来回避这个问题

我使用gfortran是值得的。

TRIM(buffer)
确实返回了一个字符值。然而,这是一个表达式,而不是一个变量。正如错误消息所表明的,表达式可以用来给出单位数,但在从字符读取的情况下,需要一个变量

由于
TRIM
的作用仅仅是提供一个从
buffer
中去掉尾随空格的值,因此不需要这样做:空格不会影响读数。相反,只需去寻找

read(buffer, '(I2)') number
甚至

read(buffer(1:2), '(I2)') number
更一般地说,可以将更复杂的字符表达式指定给变量,并在读取上下文中使用后一个变量