主题:读文件
付少杰99
[专家分:0] 发布于 2010-12-31 14:53:00
大家好,怎么从一个txt文件中读取数据,并存到一个一维数组中去。请大家帮忙,谢谢啦!!祝大家新年好!!
回复列表 (共7个回复)
沙发
付少杰99 [专家分:0] 发布于 2010-12-31 15:56:00
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
这样没错误,但是不能运行。求大家帮忙啦!!
板凳
asymptotic [专家分:16630] 发布于 2010-12-31 23:14:00
HOHO, 谢谢你将真诚的祝福送给大家,同时也祝你来年 Fortran 编程也稍微进步一点。
3 楼
付少杰99 [专家分:0] 发布于 2011-01-01 10:27:00
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 楼
臭石头雪球 [专家分:23030] 发布于 2011-01-01 22:25:00
第一个程序,Allocatable 的数组需要经过 Allocate 分配后使用
第二个程序,是续行问题。
5 楼
付少杰99 [专家分:0] 发布于 2011-01-02 09:57:00
谢谢,石头哥!
第一个知道了,谢谢!
第二个,续行,我看书上就是这么续行的。不知道怎么弄了。请指教,谢谢!!
6 楼
臭石头雪球 [专家分:23030] 发布于 2011-01-02 19:19:00
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 楼
付少杰99 [专家分:0] 发布于 2011-01-03 16:12:00
谢谢,我再好好看看。
我来回复