回 帖 发 新 帖 刷新版面

主题:[原创]fortran 如何读取这个文件

这个是文件
0             1              2              3              4              5              6              7              8
   1    2.4202093E+06
   2    0.0000000E+00  7.4389397E+04
   3    0.0000000E+00  0.0000000E+00  7.4389397E+04
   4    0.0000000E+00  0.0000000E+00  0.0000000E+00  5.3905496E+07
   5    0.0000000E+00  0.0000000E+00 -4.0957871E+06  0.0000000E+00  2.9184558E+08
   6    0.0000000E+00  4.0957871E+06  0.0000000E+00  0.0000000E+00  0.0000000E+00  2.9184558E+08
   7   -2.4202093E+06  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00  2.4202093E+06
   8    0.0000000E+00 -7.4389396E+04  0.0000000E+00  0.0000000E+00  0.0000000E+00 -4.0957871E+06  0.0000000E+00  7.4389397E+04
   9    0.0000000E+00  0.0000000E+00 -7.4389396E+04  0.0000000E+00  4.0957871E+06  0.0000000E+00  0.0000000E+00  0.0000000E+00
  10    0.0000000E+00  0.0000000E+00  0.0000000E+00 -5.3905496E+07  0.0000000E+00  0.0000000E+00  0.0000000E+00  0.0000000E+00
  11    0.0000000E+00  0.0000000E+00 -3.3431525E+06  0.0000000E+00  1.1773313E+08  0.0000000E+00  0.0000000E+00  0.0000000E+00
  12    0.0000000E+00  3.3431525E+06  0.0000000E+00  0.0000000E+00  0.0000000E+00  1.1773313E+08  0.0000000E+00 -3.3431525E+06
  13    1.2585176E-12  2.0708573E+03 -2.5791880E+03 -1.4029489E-05  1.3995450E+05  1.1237095E+05 -1.2585177E-12 -2.0708573E+03
  14   -2.4842519E-12  2.5791880E+03  2.0708573E+03 -8.0930180E-05 -1.1237095E+05  1.3995450E+05  2.4842520E-12 -2.5791880E+03
  15   -4.5520386E-11  2.0268283E-06  1.1203054E-06  2.9717002E+05 -6.0788678E-05  1.0997642E-04  4.5520388E-11 -2.0268283E-06
  16   -9.7475813E+03  2.4303875E-09  1.1721444E-09 -1.2216595E-07 -6.6879492E-08  1.3879689E-07  9.7475817E+03 -2.4303876E-09
  17    9.5722477E-09  2.5098067E+04 -4.6261888E+04  4.3484367E-06  2.6743511E+06  1.4508929E+06 -9.5722478E-09 -2.5098067E+04
  18   -1.6394618E-08 -4.6261888E+04 -2.5098067E+04 -6.4262816E-05  1.4508929E+06 -2.6743511E+06  1.6394619E-08  4.6261889E+04
  19   -1.8735980E+05  1.5255002E-04  4.4192003E-05  4.2412075E-04 -3.0282144E-03  9.8802475E-03  1.8735980E+05 -1.5255002E-04
  20   -3.1423644E-04 -1.5973329E+04  2.0276090E+04 -1.3519023E-03 -1.2493893E+06 -9.8425820E+05  3.1423644E-04  1.5973330E+04
  21    6.7190953E-04  2.0276090E+04  1.5973330E+04  2.0819363E-03 -9.8425822E+05  1.2493893E+06 -6.7190953E-04 -2.0276090E+04
  22    3.1439582E-04  6.7442105E+04 -3.4322022E+04 -1.6844542E-03  2.5332022E+06  4.9776929E+06 -3.1439582E-04 -6.7442105E+04
  23    6.9161327E-04  3.4322022E+04  6.7442105E+04  3.5303111E-04 -4.9776929E+06  2.5332022E+06 -6.9161327E-04 -3.4322022E+04
  24    1.0685863E+06 -4.5934980E-04 -9.4806272E-04 -7.8728804E-03  7.1773106E-02 -3.2075519E-02 -1.0685863E+06  4.5934980E-04
  25    2.1861492E-02  3.4146991E+03  3.6738248E+04 -2.1577478E-02 -2.8050848E+06  2.6072338E+05 -2.1861492E-02 -3.4146991E+03
  26   -9.3384198E-01  3.6738354E+04 -3.4147263E+03 -5.0030750E+00  2.6072601E+05  2.8050915E+06  9.3384198E-01 -3.6738354E+04
  27    1.3243075E-03 -7.6462851E-05  3.4547071E-05 -1.6273777E-05  7.7819315E-04 -1.9210301E-03 -1.3243075E-03  7.6462850E-05
  28    5.5717495E-03  3.1417487E-04 -1.3523136E-04  1.9374718E+06  8.7719691E-03  2.5551483E-02 -5.5717495E-03 -3.1417487E-04



我想要一个如:k(1,1)=2.4202093E+06
                   k(1,2)=0

没有数值就为0  一直读完  。

回复列表 (共7个回复)

沙发

这个是我写的一个程序:

program HELLO

 parameter(m=28,n=8) 
 real x(m,n)
       OPEN(2,FILE='test.txt')
       READ(2,*)((x(i,j),j=1,n),i=1,m)  
       write(*,100)((x(i,j),j=1,n),i=1,m)
      CLOSE(2)   
  100 FORMAT(8G15.6)

  end program

感觉输出来的结果  我在那个文件里面一个都找不到。?

板凳

program HELLO
parameter(m=28,n=8) 
real x(1:m,0:n) !注意列标是从0开始取的。
OPEN(2,FILE='test.txt')
read(2,*)
READ(2,*)((x(i,j),j=0,i),i=1,n)
     read(2,*)((x(i,j),j=0,n),i=n+1,m)  
CLOSE(2)         
     open(3,file='test_out.txt')
     write(3,'(f3.0,8G15.6)')((x(i,j),j=0,n),i=1,m)
     close(3) 
100 FORMAT(8G15.6)
end program

说明上面缩进的是我增加的语句,其它变化不大,最后文件输出在test_out.txt中。

3 楼


这个是我运行的结果:
 1.   0.242021E+07    0.00000        0.00000        0.00000        0.00000        0.00000        0.00000        0.00000    
 2.    0.00000        74389.4        0.00000        0.00000        0.00000        0.00000        0.00000        0.00000    
 3.    0.00000        0.00000        74389.4        0.00000        0.00000        0.00000        0.00000        0.00000    
 4.    0.00000        0.00000        0.00000       0.539055E+08    0.00000        0.00000        0.00000        0.00000    
 5.    0.00000        0.00000      -0.409579E+07    0.00000       0.291846E+09    0.00000        0.00000        0.00000    
 6.    0.00000       0.409579E+07    0.00000        0.00000        0.00000       0.291846E+09    0.00000        0.00000    
 7.  -0.242021E+07    0.00000        0.00000        0.00000        0.00000        0.00000       0.242021E+07    0.00000    
 8.    0.00000       -74389.4        0.00000        0.00000        0.00000      -0.409579E+07    0.00000        74389.4    
 9.    0.00000        0.00000       -74389.4        0.00000       0.409579E+07    0.00000        0.00000        0.00000    
10.    0.00000        0.00000        0.00000      -0.539055E+08    0.00000        0.00000        0.00000        0.00000    
11.    0.00000        0.00000      -0.334315E+07    0.00000       0.117733E+09    0.00000        0.00000        0.00000    
12.    0.00000       0.334315E+07    0.00000        0.00000        0.00000       0.117733E+09    0.00000      -0.334315E+07
13.   0.125852E-11    2070.86       -2579.19      -0.140295E-04    139954.        112371.      -0.125852E-11   -2070.86    
14.  -0.248425E-11    2579.19        2070.86      -0.809302E-04   -112371.        139954.       0.248425E-11   -2579.19    
15.  -0.455204E-10   0.202683E-05   0.112031E-05    297170.      -0.607887E-04   0.109976E-03   0.455204E-10  -0.202683E-05
16.   -9747.58       0.243039E-08   0.117214E-08  -0.122166E-06  -0.668795E-07   0.138797E-06    9747.58      -0.243039E-08
17.   0.957225E-08    25098.1       -46261.9       0.434844E-05   0.267435E+07   0.145089E+07  -0.957225E-08   -25098.1    
18.  -0.163946E-07   -46261.9       -25098.1      -0.642628E-04   0.145089E+07  -0.267435E+07   0.163946E-07    46261.9    
19.   -187360.       0.152550E-03   0.441920E-04   0.424121E-03  -0.302821E-02   0.988025E-02    187360.      -0.152550E-03
20.  -0.314236E-03   -15973.3        20276.1      -0.135190E-02  -0.124939E+07   -984258.       0.314236E-03    15973.3    
21.   0.671910E-03    20276.1        15973.3       0.208194E-02   -984258.       0.124939E+07  -0.671910E-03   -20276.1    
22.   0.314396E-03    67442.1       -34322.0      -0.168445E-02   0.253320E+07   0.497769E+07  -0.314396E-03   -67442.1    
23.   0.691613E-03    34322.0        67442.1       0.353031E-03  -0.497769E+07   0.253320E+07  -0.691613E-03   -34322.0    
24.   0.106859E+07  -0.459350E-03  -0.948063E-03  -0.787288E-02   0.717731E-01  -0.320755E-01  -0.106859E+07   0.459350E-03
25.   0.218615E-01    3414.70        36738.2      -0.215775E-01  -0.280508E+07    260723.      -0.218615E-01   -3414.70    
26.  -0.933842        36738.4       -3414.73       -5.00308        260726.       0.280509E+07   0.933842       -36738.4    
27.   0.132431E-02  -0.764628E-04   0.345471E-04  -0.162738E-04   0.778193E-03  -0.192103E-02  -0.132431E-02   0.764628E-04
28.   0.557175E-02   0.314175E-03  -0.135231E-03   0.193747E+07   0.877197E-02   0.255515E-01  -0.557175E-02  -0.314175E-03



这个数据都不符合。

4 楼

用ES,而不是用G。

5 楼


能读到指定的位置
或者从指定的位置读起吗?

6 楼

通过虚读跳到你要读取的行。

7 楼


但是前面的字符串都是不确定有多少行的?

我来回复

您尚未登录,请登录后再回复。点此登录或注册