假设我有一个这样的字符串:
character(20) :: str="&
&1.2 &
&2. &
&3.32 &
&4.223 &
"
如何像文件一样读取字符串?
例如,我试过
program main
implicit none
character(20) :: str="&
&1.2 &
&2. &
&3.32 &
&4.223 &
"
integer i
real a
do i=1,4
read(str,*) a
print*, a
end do
end program main
但我每次只获得第一行
1.200000
1.200000
1.200000
1.200000
答案 0 :(得分:4)
你的字符串中有四个real
,但是你把它读成一个真正的变量(四次)。由于每次使用相同的字符串时,总会得到相同的结果。
也许你应该直接将字符串读入数组(没有循环):
real a(4)
read(str,*) a(1:4)
(您可以简单地编写read(str,*) a
,范围仅用于指示此处a
是一个数组...)