Re: [問題] fortran中開啟input如何跳過幾行字呀??

看板Programming作者時間17年前 (2008/09/04 00:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
由於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
文章代碼(AID): #18lhWyqY (Programming)
文章代碼(AID): #18lhWyqY (Programming)