[問題] C 的 eof 問題

看板C_and_CPP作者 (daniel)時間15年前 (2011/01/22 19:30), 編輯推噓6(6010)
留言16則, 6人參與, 最新討論串1/3 (看更多)
其實我爬過很多文章 也股狗過了 可是 我還是無法順利的處理問題 所以來請教各位前輩了 我的迴圈是以下 while (fscanf (timefp, "%d", &Timedata)!=EOF) 其實在我撰寫之前我就有猜到會多讀取一次了 可是我現在一直想處理掉 看了很多可是不是跑無限迴圈 不然就是讀取不出來 請各位教導一下我了 謝謝 ps. timefp 是ASCII檔案 拍謝 打太快 打錯了XD 以改正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.26.138

01/22 19:42, , 1F
原來有10進位檔案>"<,以前都不知道
01/22 19:42, 1F
※ 編輯: danielpowter 來自: 140.134.26.138 (01/22 19:46)

01/22 19:55, , 2F
改成=1應該就可以了,有問題其實去查一下reference最快啦
01/22 19:55, 2F

01/22 19:56, , 3F
參考這個 http://ppt.cc/HF-Z
01/22 19:56, 3F

01/22 20:02, , 4F
改成 =1 那要是讀取到的檔案有1 怎辦 自動跳出 ?
01/22 20:02, 4F

01/22 20:25, , 5F
顯然原PO沒聽懂,他是說把!=EOF改成==1
01/22 20:25, 5F

01/22 20:25, , 6F
fscanf() 會回傳成功讀到幾個變數
01/22 20:25, 6F

01/22 20:56, , 7F
理論上EOF -> end of file 就可以了啊,不要想太多
01/22 20:56, 7F

01/22 20:57, , 8F
而且fscanf是在讀的當下去判斷的呀
01/22 20:57, 8F

01/22 21:00, , 9F
不好意思喔 如果照我原來的方式寫 會多讀一次啊
01/22 21:00, 9F

01/22 21:01, , 10F
可否來個列子 一行到兩行就好 因為我還不是很懂 謝謝
01/22 21:01, 10F

01/22 21:01, , 11F
省略掉多讀一次的處理,因為這並非feof
01/22 21:01, 11F

01/22 21:05, , 12F
另外在問一個相關的觀念 是不是C++的寫法也是會多讀
01/22 21:05, 12F

01/22 21:05, , 13F
!feof(infp) 這樣的寫法是否也是會多讀一次
01/22 21:05, 13F

01/22 21:05, , 14F
是的話 要怎更改才會避免呢 以上 謝謝大家的指教
01/22 21:05, 14F

01/22 22:50, , 15F
我是都用while(feof(infilp)),好像沒有多一次的問題
01/22 22:50, 15F

01/22 23:09, , 16F
while(feof(infilp))?? 樓上...你有沒有用錯feof啊....
01/22 23:09, 16F
文章代碼(AID): #1DEh_9VR (C_and_CPP)
文章代碼(AID): #1DEh_9VR (C_and_CPP)