c語言feof函數(shù)源代碼 C語言feof函數(shù)

C語言中的feof函數(shù)

即使文件是空的,也要再讀一次,feof函數(shù)值才會(huì)變?yōu)檎妗?/p>

網(wǎng)站制作、成都網(wǎng)站建設(shè)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。

因?yàn)橹挥凶x出所有的數(shù)據(jù)之后,再讀一次,函數(shù)feof(fp)的返回值才為真。(請(qǐng)見《C語言好程序設(shè)計(jì)—從入門到進(jìn)階》,人民郵電出版社,2011。)

示例:

#includestdio.h

#includestdlib.h

main()

{

FILE *fp;

int a;

if((fp=fopen("c:\\number.txt","r"))==NULL)

{

printf("文件打開失?。n");

exit(0);

}

fscanf(fp,"%d",a);

while(!feof(fp)) /*等價(jià)于while(feof(fp)==0)*/

{

printf("%d ",a);

fscanf(fp,"%d",a);

}

fclose(fp);

}

尋 c語言函數(shù)fwrite和fread的源代碼

fwrite源代碼為:

size_t fwrite (const void* ptr,size_t size,size_t nmemb,FILE *fp);

頭文件在search.h中,有的在stddef.h中

fread源代碼為:

size_t fread(const void* ptr,size_t size,size_t nmemb,FILE *fp);

函數(shù)參數(shù)與fwrite相同

c語言中feof函數(shù)是怎樣的?

他是指讀到文件的末尾?。∧憧梢圆榭聪嚓P(guān)文檔 ?。。。?很好理解的??!fscanf 是文件的 輸入輸出 ! printf是輸出到控制臺(tái)上?。。?! 呵呵 沒有什么大的不同 就一個(gè)函數(shù)而已 ?。。?只是函數(shù)的調(diào)用過程中的參數(shù)不一樣?。?!

c語言feof()

第一個(gè)代碼結(jié)果是11不錯(cuò),但第二個(gè)就不是10了,應(yīng)該是2——第一個(gè)代碼用fgetc讀,它把結(jié)束符也當(dāng)一個(gè)字符讀取了,當(dāng)然'\n'也被讀取了,共讀了12個(gè),但c=='\n'時(shí)被否定了,num沒有增值,所以最后num是11;第二個(gè)代碼顯然只能把0123456789當(dāng)一個(gè)整數(shù)來讀(遇到'\n'判斷為數(shù)據(jù)結(jié)束),所以一次就讀完了,之所以最后num是2,是因?yàn)橐淮巫x完后并沒有越過文件結(jié)尾產(chǎn)生讀操作,所以feof不可能返回“真”,還要再讀一次才產(chǎn)生錯(cuò)誤,所以結(jié)果是2。這里有個(gè)問題必須注意:feof這個(gè)函數(shù)不產(chǎn)生讀文件操作,只檢查剛剛發(fā)生的讀操作是否越過文件結(jié)尾了,所以要在邏輯上緊跟在讀操作函數(shù)之后才能正確發(fā)揮作用。從這點(diǎn)上說,這兩款代碼都有錯(cuò)誤,應(yīng)該這么寫:

(1)代碼改如下:

#include?"stdio.h"

int?main(){

FILE?*fp;

int?num=0;

//int?a;

char?c;

if((fp=fopen("D:\\a.txt","r"))==NULL){

printf("打開文件時(shí)發(fā)生錯(cuò)誤...\n");

return?0;

}

while(1){

c=fgetc(fp);

if(feof(fp))//把判斷提前到這里來,處理過了再判斷毫無意義

break;

if(c!='\n'){

num++;

printf("%c\n",c);

}

}

printf("\n%d\n",num);

fclose(fp);

return?0;?

}

(2)代碼改如下:

#include?"stdio.h"

int?main(int?argv,char?*argc[]){

FILE?*fp;

int?num=0;

int?a;

//char?c;

if((fp=fopen("D:\\a.txt","r"))==NULL){

printf("打開文件時(shí)發(fā)生錯(cuò)誤...\n");

return?0;

}

while(1){

fscanf(fp,"%d",a);

if(feof(fp))

break;

num++;

printf("%d\n",a);

}

printf("\n%d\n",num);

fclose(fp);

return?0;?

}

這樣改后前者結(jié)果就應(yīng)該是10,后者結(jié)果就應(yīng)該是1。相信不會(huì)有錯(cuò)?!捎趫D3什么也看不清,不知你要問什么問題,以上只是按主要題意猜答的。

c語言feof()函數(shù)問題

while(1)

{

fread(a[j],sizeof(struct stu),1,fp);/*這里一旦讀到結(jié)束位置,后面輸出應(yīng)停止,所以在fread后面增加判斷即可*/

if(feof(fp)) break;

printf("%10d",a[j].a);

printf("%10s",a[j].b);

printf("%10s",a[j].c);

printf("%10.2lf",a[j].d);

printf("%10d",a[j].e);

printf("%10.2lf\n",a[j].f);

j++;

}

fclose(fp);

}

原因:

當(dāng)遇到文件結(jié)束標(biāo)志,不立即結(jié)束而再執(zhí)行后面幾個(gè)printf才結(jié)束,會(huì)由于%s輸出遇不到字符串結(jié)束標(biāo)志而一直向下輸出,后面內(nèi)容是隨機(jī)的,當(dāng)遇到字符串結(jié)束標(biāo)志才停止。至于在那里停止,沒有辦法固定,要看內(nèi)存單元%s正在訪問位置是否是字符串結(jié)束標(biāo)志。

不太理解C語言中的!feof(fp)?

feof是c標(biāo)準(zhǔn)函數(shù),原型:int feof(FILE *stream)是feof函數(shù)原型,文件結(jié)束返回非0值,否則返回0。fp對(duì)應(yīng)上面的文件流,!是bool取反的意思,!feof(fp)組合起來就是文件尚未結(jié)束的邏輯。

文章名稱:c語言feof函數(shù)源代碼 C語言feof函數(shù)
分享路徑:http://m.kartarina.com/article20/hiidjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作關(guān)鍵詞優(yōu)化響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、App開發(fā)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
主站蜘蛛池模板: 亚洲AV无码乱码在线观看代蜜桃 | 国产爆乳无码视频在线观看3| 67194成l人在线观看线路无码| 精品久久久无码中字| 国产日产欧洲无码视频| 亚洲V无码一区二区三区四区观看| 无码成人AAAAA毛片| 亚洲AV永久纯肉无码精品动漫| 亚洲AV无码专区国产乱码不卡| 亚洲国产av高清无码| 日韩精品无码Av一区二区| 无码粉嫩虎白一线天在线观看| 亚洲AV综合色区无码二区偷拍| 无遮掩无码h成人av动漫| 东京热人妻无码一区二区av| 成人av片无码免费天天看| 国产精品无码v在线观看| 亚洲伊人成无码综合网| 成人免费无遮挡无码黄漫视频| 亚洲一区精品无码| 国99精品无码一区二区三区| 久久久精品天堂无码中文字幕| 无码久久精品国产亚洲Av影片| 久久亚洲AV成人无码国产| 精品无码av一区二区三区 | 国产精品99精品无码视亚| 无码射肉在线播放视频| 亚洲中文久久精品无码1 | 曰韩精品无码一区二区三区| 国产精品亚洲专区无码WEB| 久久久久久久亚洲Av无码| 亚洲爆乳无码专区| 亚洲AV无码国产精品麻豆天美 | 亚洲av无码一区二区三区天堂古代| 久久久久亚洲AV无码专区桃色 | 人妻无码第一区二区三区| 国内精品人妻无码久久久影院| 国产V片在线播放免费无码| yy111111少妇影院无码| 日韩成人无码影院| 人妻少妇无码精品视频区|