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

如何在Fortran中像文件一样读取字符串

如何在Fortran中像文件一样读取字符串,fortran,Fortran,假设我有这样一个字符串: character(20) :: str="& &1.2 &

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

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    

字符串中有四个
real
s,但将其读入一个实变量(四次)。因为每次从同一个字符串开始,总是得到相同的结果

也许您应该直接将字符串读入数组(无循环):


(您可以简单地写入
read(str,*)a
,给出的范围只是为了表明
a
在这里是一个数组…

您的字符串中有四个
real
s,但您将其读入一个实变量(四次)。因为每次从同一个字符串开始,总是得到相同的结果

也许您应该直接将字符串读入数组(无循环):

(您可以简单地写入
read(str,*)a
,给出的范围仅表示
a
在这里是一个数组…)

real a(4)

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