作者wenni ()
站内Programming
标题Re: [问题] fortran中开启input如何跳过几行字呀??
时间Thu Sep 4 00:15:54 2008
由於j大写的是很什麽data可能都可以的解法
这边提供一个专对你目前data的懒人解法
open(unit=11,file=xxx)
read(11,*)
do i = 1 , 5
read(11,*) header_i(i) , int1_i(i) , int2_i(i) , int3_i(i)
end do
read(11,*)
read(11,*)
do i = 1 , 5
read(11,*) header_f(i) , int1_f(i) , int2_f(i) , int3_f(i)
end do
close(unit=11)
这样就一样把东西都读进去了
不要的就直接读过就好
※ 引述《[email protected] (㊣我恨你,鸭嘴兽泰瑞)》之铭言:
: ※ 引述《[email protected] (阿暴)》之铭言:
: > 请问各位高手
: > 我该如何跳过英文字
: > 然後去得我要的10行数据呢??
: 给fortran 的输入档案最好不要这样。以前碰到这样我会说用别的程式跑
: 过一遍取代那些英文字,因为fortran 的输出入规格是在写程式的时候就
: 要固定,写好一列之内有四个栏位就是四个,不到四个他就出run-time
: error 给你看,少於四个行内剩下的又会跳过!每一行有长有短是C的习
: 惯,硬要用Fortran 模仿C那真是马鹿。
: 不过这种马鹿的问题实在是一直在发生,幸好我还有一点实验精神,所以
: 我就写了以下的程式,搭配你的测试资料就可以正常读取出来。
: 原理是先用一个buffer读取整行,然後判断buffer的内容是不是那几个起
: 讫字串,如果不是再从buffer里面把各个栏位读出来。
: 着色版本见此 http://fortran.nopaste.syscp.org/287 。(推荐此站,
: 不像那些几天就删掉的pastebin网站,这个网站居然还有永久保存的选项)
: 谨慎使用。
: program doubleBufferInput
: character*66 buffer
: character*10 header
: integer fig1, fig2, fig3
: 10 read (*, '(A66)', end=100) buffer
: if (buffer == "Initial" .OR.
: 1 buffer == "end" .OR.
: 2 buffer == "Final") then
: write (*, *) "*** "//buffer
: else
: read (buffer, *) header, fig1, fig2, fig3
: write (*, "(A10, 3I5)") header, fig1, fig2, fig3
: end if
: ! Uncomment the following line to inspect the buffer
: ! write (*, "('[', A66, ']')") buffer
: goto 10
: 100 continue
: stop
: end
:
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.138.129