我希望将Fortran中的字符数组转换为数值类型。我认为应该避免使用字符串(或许不是吗?),因为这些数组会存储可变长度数据(用户输入)。
我有以下代码:
输出结果如下:
我有以下代码:
IMPLICIT NONE
CHARACTER(LEN=1), ALLOCATABLE :: TOKENS(:, :)
CHARACTER(LEN=1) :: TEST_STR(80)
INTEGER :: I
CHARACTER(LEN=80) :: INPUT_STR
INTEGER :: MYINT
INPUT_STR = ' I am a test 12 string '
DO I = 1, LEN(INPUT_STR)
TEST_STR(I) = INPUT_STR(I:I)
END DO
CALL TOKENIZE(TEST_STR, ' ', TOKENS)
PRINT *, "-----------"
INPUT_STR = '15'
PRINT *, INPUT_STR(1:2)
READ(INPUT_STR(1:2), '(I2)') MYINT
PRINT *, MYINT
PRINT *, "-----------"
PRINT *, TOKENS(:, 5)
READ(TOKENS(:, 5), '(I2)') MYINT
PRINT *, MYINT
输出结果如下:
-----------
15
15
-----------
12
1
我已经分别测试了分词器的输出,它的输出是正确的。然而,似乎READ(TOKENS(:, 5), '(I2)') MYINT
只能阅读TOKENS(:, 5)
的第一个元素。
为了测试,我使用READ(TOKENS(1, 5), '(I2)') MYINT
和READ(TOKENS(2, 5), '(I2)') MYINT
运行它,分别打印出1
和2
。
你有什么办法可以让它一次性阅读整个数组,而不仅仅是一个字符吗?