c語(yǔ)言中文件的結(jié)尾指的是文件的最后一個(gè)字符的下一個(gè)字符
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的惠州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!例如:文件a.txt中有三個(gè)字符abc,即文件大小為3
那么文件的實(shí)際內(nèi)容如下圖.
echo -n abc > a.txt
#include#include int main(void){ FILE* fp = fopen("a.txt","r"); if(NULL==fp){ perror("fopen"),exit(-1); } int c; while(!feof(fp)){ //當(dāng)文件指針第一次到達(dá)文件結(jié)尾處時(shí),feof函數(shù)返回的是0. c = getc(fp); printf("c=%d\n",c); if(ferror(fp)){ perror("ferror"),exit(-1); } } fclose(fp); return 0; }
c=97
c=98
c=99
c=-1
所以正確做法應(yīng)該是
#include#include int main(void){ FILE* fp = fopen("a.txt","r"); if(NULL==fp){ perror("fopen"),exit(-1); } int c; while((c=getc(fp))!=EOF){ printf("c=%d\n",c); if(ferror(fp)){ perror("ferror"),exit(-1); } } return 0; }
c=97
c=98
c=99
如何讀出文件最后一個(gè)字符c,如下:
#include#include #include int main(void){ FILE* fp = fopen("a.txt","r"); fseek(fp,-1,SEEK_END); char c; c = getc(fp); printf("c=%d\n",c); fseek(fp,0,SEEK_END); printf("feof(fp)=%d\n",feof(fp));//此時(shí)在文件結(jié)尾處 //即文件最后一個(gè)字符(即c字符)的下一個(gè)字符處 //結(jié)果為0 c = getc(fp); printf("c=%d\n",c); //c=-1 printf("feof(fp)=%d\n",feof(fp));//結(jié)果為1 return 0; }
c=99
feof(fp)=0
c=-1
feof(fp)=1
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。