看板 C_and_CPP 關於我們 聯絡資訊
C CODE 我有一個檔案要讀... 假設如下: 5 10 15 20 43 26 11 我要怎麼判斷已經把所以數字都讀完了? 目前我的方法是 FILE *fr1=NULL; fscanf(fr1 , "%d" ,&data); while(data != NULL) { do somthing... fscanf(fr1 , "%d" ,&data); } 很明顯的,用這個方法data最後會一直等於最後一個數字,也就是11 我不知道要怎麼樣才能讓他判定已經做完了,所以會一直在裡面loop 我還有用另一種方法是用fgets,然後判定data[0]這是不是'\n' 再用atoi去轉為int,不過似乎還是會卡在最後一個數字.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.249.109
joefaq:fscanf會return讀到的個數... 12/27 04:20
carlcarl:scanf是EOF fgets是NULL 12/27 04:37
yauhh:有一題基本程式題是wc,word count.可能可用同樣的想法,假想 12/27 09:12
yauhh:任何空白字元('\n',' ','\t')夾在文字之間,該怎麼設置狀態. 12/27 09:13
netsphere:EOF? 12/27 11:22
Yshuan:for(i=0;scanf("%d", &a[i])!=EOF;i++); 12/27 15:19
Yshuan:另外 fgets不會有\n 他是抓整行 然後補\0 12/27 15:20
iamivers0n:如果buffer沒滿的話會有\n喔... 12/27 16:46