Re: [問題] fortran中開啟input如何跳過幾行字呀??
※ 引述《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站
--
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):