fscanf的返回值未成功输入的元素个数 .xml
生活随笔
收集整理的這篇文章主要介紹了
fscanf的返回值未成功输入的元素个数 .xml
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
test.txt?中保存的為:
1
2
3
4
5
?程序
?????int?i,j,k;??FILE?*fp=fopen("e://test.txt","r");??if?(fp==NULL)??{??//return?FALSE;??}??while?(!feof(fp))??{??j=fscanf(fp,"%d%d",&i,&k);??cout<<i<<'/t'<<k<<'/t'<<j<<endl;??}??
輸出結(jié)果為:
?1???????2???????2
3???????4???????2
5???????4???????1
OK若是將test.txt中的內(nèi)容改為:?1?2?3?4
?則輸出結(jié)果為:
?1???????2???????2
3???????4???????2
3???????4???????-1
OKfscanf()?在進(jìn)行第一次轉(zhuǎn)換之前就已經(jīng)到了末尾或者有讀錯(cuò)誤時(shí)?則其返回值為EOF(-1),?否則得話,則返回其成功轉(zhuǎn)換的元素?cái)?shù)目。可以根據(jù)這個(gè)性質(zhì),來(lái)控制文件讀寫(xiě)。MSDN中對(duì)返回值的解釋為:Each?of?these?functions?returns?the?number?of?fields?successfully?converted?and?assigned;?the?return?value?does?not?include?fields?that?were?read?but?not?assigned.?A?return?value?of?0?indicates?that?no?fields?were?assigned.?If?an?error?occurs,?or?if?the?end?of?the?file?stream?is?reached?before?the?first?conversion,?the?return?value?is?EOF?for?fscanf?and?fwscanf.-------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------feof()?標(biāo)志?在讀完最后一個(gè)元素后,仍是正常的,只有再試圖讀新的元素時(shí),才知道到了末尾,這時(shí)才修改狀態(tài)讀文件時(shí),要清楚這個(gè)判斷結(jié)尾的原理,否則很容易多讀一寫(xiě)內(nèi)容例子:
?下面的程序
[c-sharp]?view?plaincopywhile?(!feof(fp))?{??if?(fscanf(fp,?"%lf",?&x)?==?1)//?返回值為1時(shí)正確??{??。。。。。//正確讀入時(shí)的處理情況??}??}??fclose(fp);??本文使用?書(shū)畫(huà)小說(shuō)軟件?發(fā)布,內(nèi)容與軟件無(wú)關(guān),書(shū)畫(huà)小說(shuō)軟件?更愜意的讀、更舒心的寫(xiě)、更輕松的發(fā)布。
?轉(zhuǎn)載于:https://www.cnblogs.com/shuilan0066/p/4031926.html
總結(jié)
以上是生活随笔為你收集整理的fscanf的返回值未成功输入的元素个数 .xml的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: substring 在C#,Javasc
- 下一篇: static成员函数和static成员