小编Ste*_*nel的帖子

从包含乘法的字符串中读取子字符串

我是Fortran的科学家编程,我想出了一个奇怪的行为.在我的一个程序中,我有一个包含几个"单词"的字符串,我想将所有单词作为子字符串读取.第一个单词以整数和通配符开头,如"2*something".

当我对该字符串执行内部读取时,我希望读取所有wod,但是READ函数会重复读取第一个子字符串.我不明白为什么,也不知道如何避免这种行为.

下面是一个再现这种行为的极简主义示例程序.我希望它能读取三个子串并在屏幕上打印"3*ab c".相反,我得到了"aa a".

我究竟做错了什么?你能帮我解释一下发生了什么吗?

我正在使用Gfortran 7.3(7.3.0-27ubuntu1~18.04)在GNU/Linux x64下编译我的程序.

PROGRAM testread

IMPLICIT NONE
CHARACTER(LEN=1024):: string
CHARACTER(LEN=16):: v1, v2, v3

string="3*a b c"

READ(string,*) v1, v2, v3

PRINT*, v1, v2, v3

END PROGRAM testread
Run Code Online (Sandbox Code Playgroud)

string fortran gfortran

3
推荐指数
1
解决办法
89
查看次数

标签 统计

fortran ×1

gfortran ×1

string ×1