c語言feof函數(shù) c語言中f函數(shù)用法

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

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

站在用戶的角度思考問題,與客戶深入溝通,找到六安網(wǎng)站設(shè)計與六安網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋六安地區(qū)。

c語言中feof是什么意思

feof是一個c語言函數(shù),既可用以判斷二進(jìn)制文件又可用以判斷文本文件。feof(fp)有兩個返回值:如果遇到文件結(jié)束,函數(shù)feof(fp)的值為1,否則為0。

EOF是文件結(jié)束標(biāo)志的文件。在文本文件中,數(shù)據(jù)是以字符的ASCⅡ代碼值的形式存放,ASCⅡ代碼的范圍是0到255,不可能出現(xiàn)-1,因此可以用EOF作為文件結(jié)束標(biāo)志。

當(dāng)把數(shù)據(jù)以二進(jìn)制形式存放到文件中時,就會有-1值的出現(xiàn),因此不能采用EOF作為二進(jìn)制文件的結(jié)束標(biāo)志。為解決這一個問題,ASCI C提供一個feof函數(shù),用來判斷文件是否結(jié)束。

擴(kuò)展資料:

feof的正確寫法:

在VC里,只有當(dāng)文件位置指針(fp-_ptr)到了文件末尾,然后再發(fā)生讀/寫操作時,標(biāo)志位(fp-_flag)才會被置為含有_IOEOF。然后再調(diào)用feof(),才會得到文件結(jié)束的信息。

因此,如果運(yùn)行如下程序:

char c;

while(!feof(fp))

{

c = fgetc(fp);

printf("%X/n", c);

}

會發(fā)現(xiàn)多輸出了一個FF,原因就是在讀完最后一個字符后,fp-flag仍然沒有被置為_IOEOF,因而feof()仍然沒有探測到文件結(jié)尾。直到再次調(diào)用fgetc()執(zhí)行讀操作,feof()才能探測到文件結(jié)尾。這樣就多輸出了一個-1(即FF)。

正確的寫法應(yīng)該是:

char c;

c = fgetc(fp);

while(!feof(fp))

{

printf("%X/n", c);?

c = fgetc(fp);

}

參考資料來源:百度百科-feof

feof是什么函數(shù)?

feof是C語言標(biāo)準(zhǔn)庫函數(shù),其原型在stdio.h中,其功能是檢測流上的文件結(jié)束符,如果文件結(jié)束,則返回非0值,否則返回0(即,文件結(jié)束:返回非0值,文件未結(jié)束,返回0值),文件結(jié)束符只能被clearerr()清除。(這里的檢測流上的文件結(jié)束符就相當(dāng)于聲卡檢測電流信號的一個過程)

int feof(FILE *stream);

參數(shù)

流 :FILE結(jié)構(gòu)的指針

注意:feof判斷文件結(jié)束是通過讀取函數(shù)fread/fscanf等返回錯誤來識別的,故而判斷文件是否結(jié)束應(yīng)該是在讀取函數(shù)之后進(jìn)行判斷。比如,在while循環(huán)讀取一個文件時,如果是在讀取函數(shù)之前進(jìn)行判斷,則如果文件最后一行是空白行,可能會造成內(nèi)存錯誤。

擴(kuò)展資料

相關(guān)函數(shù)

getc()

功能:函數(shù)從流中返回一個字符值。

語法:int getc(FILE * stream)

返回值:整數(shù)值。

函數(shù)種類:“stdio.h”

內(nèi)容說明:此函數(shù)和fgetc函數(shù)相似,但它是以一個宏來實現(xiàn)的。另外它將不止一次地計算流參數(shù)咖,這對通常的宏的規(guī)則來說是一個例外。getc是一個已經(jīng)高度優(yōu)化的函數(shù),所以該函數(shù)是進(jìn)行單個字符讀操作的最好的函數(shù)。

參考:如fputc();fgetc();putc();fopen()。

fputs()

功能:將字符串中的內(nèi)容寫到指定的流中。

語法: int fputs(const char *s,F(xiàn)ILE * stream)

返回值:整數(shù)值。

函數(shù)種類:“stdio.h”

內(nèi)容說明:函數(shù)將字符串指針s所指向的字符串中的內(nèi)容寫到流stream中。標(biāo)志結(jié)束的空字符(NULL)不寫。函數(shù)也不另外增加一個換行符。只是輸出字符串中的所有字符。 函數(shù)操作成功時返回值為0,否則返回非0值。

如果流是以文本形式打開的,就會對有些字符進(jìn)行翻譯操作。這意味著字符串可能會與文件內(nèi)容之間沒有一一對應(yīng)的映射關(guān)系。然而,當(dāng)文件以二進(jìn)制打開時,不發(fā)生字符翻譯,在字符串與文件內(nèi)容之間存在一一對應(yīng)的映射關(guān)系。

參考資料來源:百度百科-fgetc

參考資料來源:百度百科-feof

c語言 while (!feof(fp))?是什么意思???謝謝

feof()是文件結(jié)束檢測函數(shù),如果沒有結(jié)束,返回值是0,結(jié)束了是1;

由于feof(fp)返回0才是沒有結(jié)束,所以通常寫成while(!feof(fp)),這樣使得沒有結(jié)束時進(jìn)行循環(huán);

C語言僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機(jī)等作業(yè)平臺的許多計算機(jī)平臺上進(jìn)行編譯。

擴(kuò)展資料:

C語言作為一門面向過程的計算機(jī)編程語言,與C++、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。

C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%~20%。因此,C語言可以編寫系統(tǒng)軟件。

新聞標(biāo)題:c語言feof函數(shù) c語言中f函數(shù)用法
URL地址:http://muchs.cn/article44/doeodee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、Google標(biāo)簽優(yōu)化

廣告

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

成都app開發(fā)公司