fgetc():
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)肅北,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
定義函數(shù)
int fgetc(FILE * stream);
函數(shù)說明
fgetc()從參數(shù)stream所指的文件中讀取一個(gè)字符。若讀到文件尾而無數(shù)據(jù)時(shí)便返回EOF。
返回值
fgetc()會(huì)返回讀取到的字符,若返回EOF則表示到了文件尾。
getc():
功 能: 從流中取字符
用 法: int getc(FILE *stream);
注意: 此函數(shù)被ISO C聲明為一個(gè)宏,所以在用時(shí)不能將其做為函數(shù)指針傳(有一些編譯器將其以函數(shù)形式也給另說)。它的原型如下 #define getc(_stream) (--(_stream)-_cnt = 0?0xff *(_stream)-_ptr++ : _filbuf(_stream))
補(bǔ)充: 在C語言中,用函數(shù)getc(fgetc)從文件讀取字符。getc、fgetc用法相同。 getc的調(diào)用形式:ch=getc(fp);此處的fp是文件指針;函數(shù)功能是從文件指針指向的文件讀入一個(gè)字符,并把它作為函數(shù)值返回給字符型變量ch。
好像沒問題啊,你文件路徑不對(duì)吧
main()
{
FILE?*fp;
int?ch;
if?((fp?=?fopen("d:\\new.txt",?"r"))?==?NULL)
{
printf("Error,file?not?exist!");
return;
}
while?((ch?=?fgetc(fp))0)
printf("%c",?ch);
fclose(fp);
}
1.fgetc是用來從文件中讀取內(nèi)容的。它可不管讀到的內(nèi)容是什么東西。
2.文本文件中的字符串和c語言中的字符串概念不同。
文本文件中,不一定需要把'\0'這個(gè)c語言的字符串結(jié)束標(biāo)志也存儲(chǔ)進(jìn)去(當(dāng)然也可以這么做)。
3.fgetc這個(gè)函數(shù)從流中讀取一個(gè)字符,然后返回。不管碰到了'\0'還是其他的字符都會(huì)返回。不知道你所謂的“結(jié)束”指的是什么。
4.一般來說,fgetc會(huì)返回讀到的字符的整形值。但fgetc讀到文件的結(jié)尾(不是字符串結(jié)尾)的時(shí)候,返回值是一個(gè)特殊值EOF。這個(gè)值和任何字符的值都不一樣,不屬于char類型。因此你會(huì)看到一些書上這么寫:
int ch;//這里要用int類型,而不是char類型。因?yàn)镋OF不是char
while((ch=fgetc(stdin))!=EOF){
//...
}
有點(diǎn)離題了。。。
總之,對(duì)于fgetc來說,文件中所有的數(shù)據(jù)(包括'\0')都是一樣處理,除非讀到了末尾,它就返回一個(gè)特殊值EOF。
fgetc()返回值: 成功時(shí)為作為 unsigned char 獲得并轉(zhuǎn)換為 int 的字符,失敗時(shí)為 EOF 。
最后一個(gè)字符,如果讀入成功了就返回這個(gè)“字符”。
然后繼續(xù)往下讀(此時(shí)已經(jīng)都讀完了,后面沒有了),讀取失敗 返回的才是EOF,設(shè)置 stream 上的文件尾指示器(feof()),若是其他(非讀到文件尾)原因?qū)е率∫彩欠祷谽OF(但此時(shí)因其他錯(cuò)誤導(dǎo)致失敗)則設(shè)置 stream 上的錯(cuò)誤指示器(ferror() )。
想要得到“EOF”需要在正好讀完全文的條件下 再進(jìn)行任意一次讀取,此時(shí)讀取失敗才會(huì)有“EOF”。
ch=fgetc(p)//p為指向文件的指針,ch為字符型變量名
通俗的的講,函數(shù)是從文件中讀出一個(gè)字符,將字符的值賦值給指定變量;
而具體到是否讀出的是文件的第一個(gè)字符,是要考慮此時(shí)的文件指針P指向文件的狀態(tài),
如果文件指針p,在打開文件后沒有進(jìn)行過任何移位,應(yīng)該讀出的是文件的第一個(gè)字符;