Re: [問題] fortran中開啟input如何跳過幾行字呀??
由於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)
這樣就一樣把東西都讀進去了
不要的就直接讀過就好
※ 引述《journeyman@kkcity.com.tw (㊣我恨你,鴨嘴獸泰瑞)》之銘言:
: ※ 引述《migeby.bbs@ptt.cc (阿暴)》之銘言:
: > 請問各位高手
: > 我該如何跳過英文字
: > 然後去得我要的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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):