回 帖 发 新 帖 刷新版面

主题:读文件

大家好,怎么从一个txt文件中读取数据,并存到一个一维数组中去。请大家帮忙,谢谢啦!!祝大家新年好!!

回复列表 (共7个回复)

沙发


program test1
    implicit none
    real,dimension(:),allocatable::a
    integer::i
    open(unit=12,file='f:\2.txt',STATUS='old')
    read(12,*)a(i)
    do i=1,5
    write(*,*)a(i)
    enddo
    stop
    end
这样没错误,但是不能运行。求大家帮忙啦!!

板凳

HOHO, 谢谢你将真诚的祝福送给大家,同时也祝你来年 Fortran 编程也稍微进步一点。

3 楼


 program test1
    implicit none
    real,dimension(1:4,13)::a
    integer::i,j
    open(unit=10,file='e:\2.txt')
    do i=1,4
    read(10,*)a(i,1),a(i,2),a(i,3),a(i,4),a(i,5),a(i,6),a(i,7),a(i,8),&
    a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)
    
    write(*,*)a(i,1),a(i,2),a(i,3),a(i,4),a(i,5),a(i,6),a(i,7),a(i,8),&
    a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)
    
    enddo
    open(unit=11,file='new2.xls')
    do i=1,4
    do j=1,13
    
    write(11,*)a(i,j)
    enddo
    enddo
    stop
    end
这个文件是四行,13列,存到表格里,但是老是错误,
E:\ad\d.for(11) : Error: Syntax error, found ',' when expecting one of: ( % . = =>
 a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)
--------------^
E:\ad\d.for(11) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: :: , : )
 a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)
----------------------------------------------^
Error executing df.exe.

d.exe - 6 error(s), 0 warning(s)
不知道什么意思,请大家帮忙啊,谢谢,再祝大家新年好!!

4 楼

第一个程序,Allocatable 的数组需要经过 Allocate 分配后使用

第二个程序,是续行问题。

5 楼

谢谢,石头哥!
第一个知道了,谢谢!
第二个,续行,我看书上就是这么续行的。不知道怎么弄了。请指教,谢谢!!

6 楼

E:\ad\d.for(11) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: :: , : )
 a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)

这说明你的文件是 for 格式,也就是固定格式。
你写的是自由格式的续行。
固定格式的续行你看看书吧。

      read(10,*)a(i,1),a(i,2),a(i,3),a(i,4),a(i,5),a(i,6),a(i,7),a(i,8),
     $ a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)
      
      write(*,*)a(i,1),a(i,2),a(i,3),a(i,4),a(i,5),a(i,6),a(i,7),a(i,8),
     $ a(i,9),a(i,10),a(i,11),a(i,12),a(i,13)

这里的 $ 要写在第六列上,一般编辑器会用绿色框显示

7 楼


谢谢,我再好好看看。

我来回复

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