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

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>
            久久一区二区三区四区| 国产一区白浆| 日韩西西人体444www| 亚洲男人第一av网站| 亚洲激情综合| 一区二区久久| 99精品热视频只有精品10| 国内成人精品一区| 国产一二三精品| 韩国精品主播一区二区在线观看| 欧美激情久久久久久| 欧美国产日本韩| 欧美成人首页| 欧美视频第二页| 国产精品最新自拍| 狠狠色伊人亚洲综合网站色| 亚洲国产精品t66y| 欧美一区成人| 欧美一区二区三区视频| 久久精品国产免费看久久精品| 亚洲欧美日韩成人| 99国产精品久久久久久久| 亚洲男人的天堂在线观看| 久久婷婷国产综合国色天香| 久久综合久久综合九色| 欧美视频在线观看一区| 狠狠色狠狠色综合人人| 亚洲欧美日韩国产成人| 欧美1区3d| 一本久久综合亚洲鲁鲁| 免费在线亚洲欧美| 在线精品一区二区| 久久久久久久久久久久久女国产乱 | 亚洲一级在线| 久久看片网站| 一色屋精品视频在线观看网站| 国产精品99久久久久久久女警| 免费观看成人网| 在线亚洲精品福利网址导航| 麻豆久久久9性大片| 一区二区在线免费观看| 久久久久久亚洲精品中文字幕| 一区二区免费在线播放| 国产精品第一页第二页第三页| 一区二区三区你懂的| 国内精品久久久久影院 日本资源| 99伊人成综合| 一区二区三区成人精品| 国产精品卡一卡二| 久久久久这里只有精品| 美女黄网久久| 一本色道婷婷久久欧美| 亚洲一区二区精品视频| 韩国一区电影| 亚洲精品综合| 国产综合婷婷| 国内精品国语自产拍在线观看| 黄色欧美日韩| 亚洲人成久久| 国产精品免费电影| 欧美国产综合| 国产一区二区久久久| 欧美二区在线播放| 国产精品国产三级国产aⅴ无密码| 久久国产精品99国产| 欧美日韩国产三区| 欧美顶级少妇做爰| 国产伦精品一区二区三区四区免费 | 亚洲伊人伊色伊影伊综合网| 国产欧美日韩亚州综合| 日韩午夜中文字幕| 亚洲三级视频在线观看| 亚洲免费久久| 亚洲裸体视频| 欧美国产日韩精品| 美玉足脚交一区二区三区图片| 国产精品嫩草久久久久| 久久网站免费| 免费欧美日韩国产三级电影| 亚洲综合色婷婷| 免费在线看成人av| 亚洲精品一区二区三区四区高清 | 国产精品久久久久高潮| 久久精品视频一| 欧美日韩精品| 99视频一区二区三区| 亚洲精品黄色| 欧美精品一区二区三区高清aⅴ| 亚洲精品欧美极品| 久久综合久久综合久久综合| 欧美14一18处毛片| 亚洲人成在线观看网站高清| 99精品热6080yy久久| 国产乱人伦精品一区二区| 久久人人97超碰人人澡爱香蕉| 久久全国免费视频| 亚洲一区观看| 免费成人av在线看| 亚欧成人精品| 欧美成年人视频网站| 亚洲女同在线| 欧美激情第10页| 午夜久久久久久| 欧美不卡激情三级在线观看| 欧美一区二区黄| 欧美电影专区| 久久亚洲一区二区三区四区| 欧美日韩精品免费在线观看视频| 久久手机精品视频| 国产精品免费看片| 亚洲黄色性网站| 国产日韩精品入口| 日韩一级成人av| 亚洲人在线视频| 久久国产视频网| 午夜精品久久久99热福利| 欧美激情久久久久| 免费日韩av片| 国产在线观看一区| 香蕉久久夜色精品| 午夜一区二区三区在线观看| 欧美日韩黄视频| 亚洲免费久久| 99re热这里只有精品视频| 久久综合色一综合色88| 久久精品国产77777蜜臀 | 国产一区二区三区自拍| 一本一本大道香蕉久在线精品| 亚洲激情影视| 欧美成人蜜桃| 亚洲国产一区在线| 亚洲激情欧美激情| 亚洲国产成人久久| 欧美欧美天天天天操| 欧美黑人在线播放| 亚洲丶国产丶欧美一区二区三区| 亚洲一区二区视频在线| 亚洲午夜在线| 国产精品久久一卡二卡| 亚洲视频观看| 亚洲综合电影| 国产精品久久久久77777| av不卡在线观看| 亚洲视频在线一区| 国产精品国产馆在线真实露脸| 99re亚洲国产精品| 亚洲社区在线观看| 国产精品九九久久久久久久| 中国成人亚色综合网站| 亚洲欧美日韩综合aⅴ视频| 国产精品久久久久久久久婷婷| 亚洲校园激情| 久久久久综合一区二区三区| 激情五月婷婷综合| 久久国产精品久久久久久| 99热在这里有精品免费| 宅男精品视频| 国产精品成人一区二区三区吃奶 | 亚洲综合激情| 久久国产88| 影音先锋亚洲一区| 久久亚洲不卡| 日韩一区二区高清| 欧美在线观看一区二区三区| 国产一区在线视频| 欧美高清视频| 亚洲在线网站| 欧美激情第三页| 一本久道久久综合婷婷鲸鱼| 国产日韩精品一区二区| 久久色在线观看| 99国产精品久久久久久久久久| 性欧美精品高清| 亚洲国产专区校园欧美| 欧美午夜精品电影| 久久久久国产一区二区三区| 亚洲另类在线一区| 久热精品视频在线观看| 国产精品99久久久久久人| 一区二区视频免费在线观看| 欧美福利在线| 欧美一区国产二区| 日韩亚洲国产精品| 免费黄网站欧美| 欧美一区二区高清| 一区二区三区产品免费精品久久75 | 国产欧美二区| 欧美高潮视频| 久久久久久91香蕉国产| 鲁大师影院一区二区三区| 亚洲一区一卡| 亚洲精品影视| 一区视频在线看| 国产精品亚洲激情| 欧美日韩免费看| 美女久久网站| 老司机一区二区| 久久精品99国产精品日本| 夜色激情一区二区| 亚洲经典在线|