如何在Fortran中读取类似文件的字符串

时间:2013-10-12 19:11:52

标签: fortran

假设我有一个这样的字符串:

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    

1 个答案:

答案 0 :(得分:4)

你的字符串中有四个real,但是你把它读成一个真正的变量(四次)。由于每次使用相同的字符串时,总会得到相同的结果。

也许你应该直接将字符串读入数组(没有循环):

real a(4)

read(str,*) a(1:4)

(您可以简单地编写read(str,*) a,范围仅用于指示此处a是一个数组...)