看板 Fortran 關於我們 聯絡資訊
自己回自己文好像怪怪的 其實是我後來想了想讀取格式的程式碼好像不用那麼複雜 只要這樣寫就同樣能夠得出space,decimal和digits的參數了 新增一個參數words(int),用來判斷是不是已經沒有在讀空格而是在讀數字了 i = 0 words = 0 space = 0 do while(.true.) i = i + 1 read(13,'(a1)',advance='no',iostat=stat) digi if(digi.ne.' ') words = 1 if((digi.eq.' ').and.(words.eq.0)) space = i if((digi.eq.' ').and.(words.ne.0)) exit if(digi.eq.'.') decimal = i end do digits = i - 1 rewind(13) 想法很簡單,只要開始讀到不是空格,就是進入數字讀取的階段了 而讀到數字後又讀到空格,就是結束階段了 然而一開始有可能直接讀到數字,所以space要先預設為0比較保險 然後,好耶,這樣本板今年就超過一季一篇文了(誤 -- https://i.imgur.com/h4Q0F04.jpg
9月23日 發生大事了 因為就在這天,加藤惠誕生了 https://i.imgur.com/H3RhXfJ.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.189.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1669459004.A.7A5.html
blc: 感謝。話說字串輸入輸出和處理一直是fortran弱項 11/26 20:59
fragmentwing: 對啊 學python時會覺得能直接讀dataframe是一件很神 11/27 11:45
fragmentwing: 奇的事情 11/27 11:45
fragmentwing: 在fortran要達到這種指令得下多少功夫啊 11/27 11:45
rex0707: 怎麼用四個單獨的if 不用else if 11/27 16:47
fragmentwing: 在嘗試用early return不過真正的early return要全部 11/27 17:40
fragmentwing: 都用否定的樣子 11/27 17:40
blc: early return要'符合條件就離開',這邊不太適合 11/29 21:29
fragmentwing: 好像是這樣 不過單純把大ifelseif結構拆成數個if不 12/06 15:17
fragmentwing: 知道到底是好還壞 會覺得這樣好像理解上會比較直接 12/06 15:17
fragmentwing: 但是結構真的有比較雜的感覺 12/06 15:18