我有这个数据文件
并且想要在没有第1,2,3,4,5行
的情况下读取此数据 program example
real data(15,9)
OPEN ( unit=10, file='filename' )
do i = 1, 15
READ (10, *) (data(i,j), j=1,10)
enddo
print *, data(4,1), data(4,2), data(4,3)
stop
end
这是我的fortran代码。
我该如何更改此代码
答案 0 :(得分:1)
看起来像这样?
输入文件:数据
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
fortran代码:
implicit none
integer:: lskip,lread
character(len=20)::line
open(20, file = "data")
!skip first 5 line
do lskip = 1,5
read(20,*)
End do
! First 5 lines skiped
! Now read actual lines
do lread = 1,5
read(20,*)LINE
write(*,*)line
End do
close(20)
end
<强>结果强>
$gfortran so.f90
$./a.out
line6
line7
line8
line9
line10
NB:这是一个最小的例子,仅用于显示跳过。您将更改lread
循环内的读取,以根据您的数据格式实际读取您的文件
答案 1 :(得分:0)
执行此操作的一种方法是为要“跳过”的每一行输入READ语句。每次遇到READ语句时,它都会读入数据,然后将文件中的“指针”向下移动到下一行。因此,例如,跳过3行标题信息:
DO 50 ilines = 1,3
READ(1,*)
50 continue
这实际上是READ并且不存储任何内容,而是将文件中的指针向前移动3行。