看板 Fortran 關於我們 聯絡資訊
今天有一筆資料,總之我目前得先算出他的行數 再用來當作可變陣列的維度來讀檔 先用這個 DO WHILE (.true.) !iostat:讀取正常=0就是了 READ(unit=20,fmt=*,iostat=state)temp_string PRINT*,temp_string,state IF( state/=0 )EXIT source=source+1 END DO 回報source = 72494 結果下面要讀檔的時候表示 end of reading 以為行數沒讀對,於是回頭去確認,打開vi看 資料的確是72494行.. 於是在讀檔迴圈中加一行讓他把目前進行到第幾圈print出來 72422 72423 72424 72425 72426 forrtl: severe (24): end-of-file during read, unit 20, 因為我是放在迴圈的最後,所以應該是讀完72426,在要讀72427的時候出錯 請問一下是怎麼回事囧....? 原始碼 http://freakshare.com/files/a8fuusx8/Text2.for.html 資料 http://freakshare.com/files/rv6cuk20/ted71pointfinally.txt.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.29.185
rex0707:建議檔案在最下面多一行是空白的 07/05 14:30
zmack0905:是指要讀的資料嗎?我試試看 07/05 14:34
zmack0905:是過了 可是沒有效果囧... 07/05 14:54
gilocustom:可以考慮把程式碼+資料都上傳讓大家看看,方便揪錯。 07/05 15:42
附上了=口=... ※ 編輯: zmack0905 來自: 140.120.29.185 (07/05 16:05)
kkarthur:去看看你的資料檔,第一列數據不是連續的 07/05 16:30
kkarthur:只有382,384 沒有383 07/05 16:30
kkarthur:同時印temp_string和source 你就能看出差異了 07/05 16:33
那部分我知道,在計算筆數的時候我都是忽略那一列. 因為不管是用vi算還是用程式去跑回圈,都不需要在乎那列連不連續 還是說那個沒排會有差?(不是就當做一個值而已嗎@@>?) ※ 編輯: zmack0905 來自: 123.240.156.97 (07/05 22:27)