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

看板Programming作者時間17年前 (2008/09/03 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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   -- 蒙帝派松正體中文計畫 (4/23) - 如何隱身 - SPAM - 英國殺人笑話 http://www.wretch.cc/blog/journeyman&article_id=14377810 ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ 法外科學暨工程顧問公司 http://www.wretch.cc/blog/journeyman/ ▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆ -- ┌─────KKCITY─────┐ 人人可架站,經營社群聯誼天地 bbs.kkcity.com.tw 歡迎社團/班系/歌友/藝文創作/公益申請 └──From:59.115.200.121 ──┘ KKCity 開設自己喜愛的主題BBS --
文章代碼(AID): #18lNzV00 (Programming)
文章代碼(AID): #18lNzV00 (Programming)