青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

EOF與feof()

Posted on 2008-08-18 19:12 Prayer 閱讀(464) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

判斷文件結束有兩種方法:EOF和feof()
查看stdio.h可以看到如下定義:
#define EOF (-1)

#define _IOEOF 0x0010
#define feof(_stream) ((_stream)->_flag & _IOEOF)

由此可以看出,這兩種方式的原理是不同的。
有人說EOF只能用于文本文件,其實不然,還要看定義的變量的類型。下面這段程序對文本文件和二進制文件都可以:
int c;
while((c=fgetc(fp)) != EOF)
{
 printf("%X\n", c);
}
如果讀到了FF,由于c定義為int型,所以實際上c=0x000000FF,不等于EOF(-1=0xFFFFFFFF),因此不會誤判為文件結尾。

但是如果把c定義為char類型,就有可能產生混淆了。
char c;
while((c=fgetc(fp)) != EOF)
{
 printf("%X\n", c);
}
因為文本文件中存儲的是ASCII碼,而ASCII碼中FF代表空值(blank),一般不使用,所以如果讀文件返回了FF,說明已經到了文本文件的結尾。但是如果是二進制文件,其中可能會包含FF,因此不能把讀到EOF作為文件結束的條件,此時只能用feof()函數。

在VC里,只有當文件位置指針(fp->_ptr)到了文件末尾,然后再發生讀/寫操作時,標志位(fp->_flag)才會被置為含有_IOEOF。然后再調用feof(),才會得到文件結束的信息。因此,如果運行如下程序:
char c;
while(!feof(fp))
{
 c = fgetc(fp);
 printf("%X\n", c);
}
會發現多輸出了一個FFFFFFFF,原因就是在讀完最后一個字符后,fp->flag仍然沒有被置為_IOEOF,因而feof()仍然沒有探測到文件結尾。直到再次調用fgetc()執行讀操作,feof()才能探測到文件結尾。這樣就多輸出了一個-1(即FFFFFFFF)。
正確的寫法應該是:
char c;
c = fgetc(fp);
while(!feof(fp))
{
 printf("%X\n", c);
 c = fgetc(fp);
}

這么說其實feof()是可以用EOF來代替的嘍?不是,這里還有一個問題。fgetc返回-1時,有兩種情況:讀到文件結尾或是讀取錯誤。因此我們無法確信文件已經結束, 因為可能是讀取錯誤! 這時我們需要feof()。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            影音先锋在线一区| 欧美日韩亚洲高清| 亚洲激情欧美| 欧美xart系列在线观看| 久久精品夜夜夜夜久久| 久久九九免费视频| 久久综合婷婷| 亚洲国产欧美久久| 亚洲福利一区| 这里只有精品视频| 欧美影院在线| 欧美国产日韩在线观看| 欧美亚州在线观看| 亚洲高清一区二| 亚洲综合不卡| 久久免费高清视频| 亚洲欧洲精品一区二区三区不卡| 一区二区三区四区五区精品视频 | 正在播放欧美视频| 亚洲手机视频| 久久综合九色九九| 亚洲三级免费电影| 午夜在线a亚洲v天堂网2018| 久久综合狠狠| 国产精品久久久久久av福利软件| 国产一区二区高清不卡| 亚洲精品国久久99热| 羞羞色国产精品| 亚洲大胆人体在线| 亚洲欧美在线aaa| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品伦理| 亚洲国产成人porn| 欧美亚洲一区二区在线| 亚洲大黄网站| 久久av一区二区三区漫画| 欧美激情一区二区三区成人| 国产美女精品视频| 日韩视频―中文字幕| 久久婷婷麻豆| 亚洲在线成人精品| 欧美日本网站| 亚洲三级免费| 欧美激情精品久久久久久久变态| 亚洲一区二区三区四区中文| 欧美精品九九| 亚洲人被黑人高潮完整版| 久久精品99国产精品酒店日本| 日韩视频在线一区| 欧美激情四色 | 午夜在线视频一区二区区别| 亚洲第一色在线| 亚久久调教视频| 国产精品国产自产拍高清av| 99天天综合性| 亚洲人成在线观看| 欧美国产日韩一区二区| 亚洲精品国精品久久99热一 | 欧美一级播放| 国产精品亚洲第一区在线暖暖韩国| 99视频精品全部免费在线| 亚洲第一久久影院| 欧美福利视频在线| 亚洲国产综合在线| 亚洲第一中文字幕在线观看| 久久免费99精品久久久久久| 韩国av一区二区三区| 久久激情五月激情| 欧美在线一区二区| 在线精品视频免费观看| 欧美多人爱爱视频网站| 免费在线欧美黄色| 亚洲毛片在线免费观看| 91久久黄色| 欧美精品一区在线播放| 中文在线不卡| 亚洲欧美三级在线| 精品999日本| 欧美电影在线观看完整版| 欧美激情精品久久久久| 亚洲性夜色噜噜噜7777| 亚洲欧美国产高清va在线播| 国产精品一国产精品k频道56| 欧美一区二区网站| 久久精品九九| 99精品视频网| 亚洲永久免费视频| 黄色亚洲大片免费在线观看| 欧美成人午夜激情| 欧美日韩国产在线一区| 久久成人精品无人区| 久久亚洲二区| 亚洲视频一区在线| 欧美一区二区三区在线视频 | 久久久久一区二区| 欧美gay视频激情| 亚洲新中文字幕| 久久精品五月| 亚洲视频高清| 久久久国产精品一区二区中文| 91久久久久久| 亚洲一区自拍| 亚洲欧洲综合另类在线| 亚洲直播在线一区| 亚洲精品乱码久久久久久久久| 中文av字幕一区| 亚洲黄色成人久久久| 午夜精品久久久久99热蜜桃导演| 亚洲激情第一区| 欧美一级专区| 亚洲女人天堂av| 欧美激情精品久久久久久变态| 午夜精品亚洲| 欧美精品一线| 欧美激情综合色| 狠狠久久五月精品中文字幕| 亚洲一二三区精品| 99pao成人国产永久免费视频| 欧美伊人久久久久久午夜久久久久| 亚洲美女91| 蜜桃av噜噜一区| 久久久欧美一区二区| 国产精品久久久久久久久果冻传媒 | 久久青青草原一区二区| 亚洲在线免费视频| 欧美极品在线视频| 欧美第一黄网免费网站| 国语自产偷拍精品视频偷| 亚洲一本视频| 亚洲综合日韩在线| 欧美日韩另类视频| 亚洲精品一二三区| 亚洲欧洲视频| 欧美 日韩 国产一区二区在线视频| 久久爱www.| 国产色爱av资源综合区| 这里只有精品丝袜| 亚洲欧美欧美一区二区三区| 国产精品wwwwww| 9l国产精品久久久久麻豆| 一级日韩一区在线观看| 欧美女同在线视频| 亚洲美女av网站| 亚洲香蕉伊综合在人在线视看| 欧美国产亚洲视频| 亚洲另类自拍| 亚洲在线观看视频| 国产偷自视频区视频一区二区| 亚洲欧美日韩国产中文在线| 先锋影音久久久| 国产欧美一区二区三区沐欲| 欧美一区免费视频| 欧美xxx成人| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 久久久久国产精品一区| 国产人久久人人人人爽| 小黄鸭精品密入口导航| 久久精品久久99精品久久| 一区二区视频免费完整版观看| 久久久久国产精品麻豆ai换脸| 麻豆av一区二区三区久久| 亚洲国产精品日韩| 欧美日韩精品一区二区| 一区二区精品国产| 久久九九99| 亚洲日本va午夜在线影院| 欧美精品一区二区三| 一区二区三区成人精品| 久久久人人人| 9l国产精品久久久久麻豆| 国产精品白丝jk黑袜喷水| 亚洲伊人伊色伊影伊综合网| 久热精品视频在线免费观看 | 久久精品国产99| 亚洲国产精品第一区二区三区| 欧美日韩免费一区| 午夜在线a亚洲v天堂网2018| 欧美激情视频一区二区三区在线播放| 日韩一级裸体免费视频| 国产尤物精品| 欧美日韩综合| 欧美在线观看www| 日韩一二在线观看| 男女激情视频一区| 久久久免费精品视频| 日韩视频免费看| 免费日韩av片| 欧美在现视频| 亚洲网站在线| 亚洲黄色一区| 国产三区二区一区久久| 欧美日韩在线视频一区二区| 久久久蜜桃精品| 香蕉成人久久| 中文无字幕一区二区三区| 亚洲国产精品一区二区第一页 | 久久综合五月| 性久久久久久| 亚洲一区高清| 中文精品视频|