原创内容,转载请标明原文地址

我们先来看下下面的代码

//获取文件大小
DWORD Get_File_Size(const char* m_FilePath)
{
unsigned long size;
if (_access(m_FilePath, ) == -)//文件不存在 2013.09.24
return ; FILE* fp = fopen( m_FilePath, "rb" );
if(fp==NULL)
return ;
fseek( fp, SEEK_SET, SEEK_END );
size=ftell(fp);
fclose(fp);
return size;
}
BYTE bReadBuf[*];
DWORD dwFileSize = Get_File_Size("C:\\pub.txt");
AfxMessageBox(IntToStr(dwFileSize));
FILE *fp = fopen("C:\\pub.txt","rb");
if (fp != NULL)
{
fread(bReadBuf,dwFileSize,,fp);
if (!feof(fp))
AfxMessageBox("");
else
AfxMessageBox("");
int nRe = fread(bReadBuf,,,fp);
AfxMessageBox(IntToStr(nRe));
if (!feof(fp))
AfxMessageBox("");
else
AfxMessageBox("");
fclose(fp);
}

其中pub.txt的文件属性为

弹出的内容分别为64,1,0,2

获取出来的文件大小是正确的,但是如果按照这个大小去读取的话,是会发现,feof返回的是true,但是继续去读取的话,又读取不出来数据,但是这个时候再次判断feof则返回false了,

原因在于,feof只有只有在读取超过的情况下,才会返回false

具体的原因可以看下:http://baike.baidu.com/link?url=mdL8HEylLCJhN1dD6ZKq2EbBexXGn_GEfTDvEh45LFt7PSU4g3iOmPuQWfuOQ79kRxOCqyNUWqkt88iCPCqd9q

(原创)foef注意事项的更多相关文章

  1. C++/C代码审查注意事项(摘录,非原创)

    文件结构 头文件和定义文件的名称是否合理?头文件和定义文件的目录结构是否合理?版权和版本声明是否完整? 重要头文件是否使用了 ifndef/define/endif 预处理块?头文件中是否只存放“声明 ...

  2. (原创)Hibernate 使用过程中(尤其是多对多关联中的级联保存和级联删除)的注意事项(基于项目的总结)

    一.先上知识点: 1.hibernate多对多关联关系中最重要的参数是(基于配置文件xxx.hbm.xml文件形式): 1):inverse属性,如果设置inverse=“true”就代表让对方参与维 ...

  3. [原创] 腾讯RTX二次开发相关的一些注意事项

    在企业即时通信方面,腾讯的RTX在国内的占有率应该是很高的 所以,就避免不了要与其他系统进行消息集成 腾讯为此提供了二次开发的工具包,支持JAVA.C#.VB等多种开发语言 但是,目前为止,腾讯官方提 ...

  4. QT数据库连接的几个重要函数的使用及注意事项(原创)

    注:在这里数据库对象等同于数据库连接对象,也就是QSqlDatabase类的对象 QSqlDatabase QSqlDatabase::addDatabase((const QString & ...

  5. [原创]android使用代码生成LayerDrawable的方法和注意事项

    为了有更好的UI体验,一般我们会把button.textview等控件的背景设置上阴影.传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属 ...

  6. [原创]Android Handler使用Message的一个注意事项

    最近发现了一个莫名其妙的问题,在使用Handler.post(Runnable)这个接口时,Runnable有时候没有运行,非常奇怪,后来发现是因为调用Handler.removeMessage()时 ...

  7. 【原创】SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)

    ABC集团SAP的系统平台已经扩展到全球一百来个国家和地区,SAP系统平台的全球实施项目中, 当时是需要支持当地的业务和法律法规的合规要求. 当时客户也是缺乏当地的资源以及对当地法律法规和业务实践的了 ...

  8. C++ 关于MFC List Control 控件的使用事项 原创

    1\在开发项目时,使用到了 listcontrol 控件,就一些问题,做一下备注,以备以后使用 (1)  给list项目 删除所有的项目  DeleteAllItems(); (2) 给list项目 ...

  9. String replaceAll 正则注意事项及特殊用法(xjl456852原创)

    我们知道String replaceAll(参数a, 参数b) 参数a是需要些正则表达式的. 但是今天试了试,发现参数b也有一些其它特性. 查看源码后,发现有些特性是平时不怎么用的.下面我来介绍一下这 ...

随机推荐

  1. apache的配置参数

    #ErrorDocument 500 "The server made a boo boo."#ErrorDocument 404 /missing.html 1.Document ...

  2. .elf格式内容

    arm-linux-ld 可以将程序链接成我们arm平台下的可运行的程序 以之前使用过的led程序为例: 首先: arm-linux-gcc -g -c led.S (-g是表示产生调试信息, -c是 ...

  3. 感觉不止被Q了一下,还不知道被谁套了一个虚弱

    最近身体出现了一些问题,导致博客无法正常更新,只能是看身体状态更新了,相信用不了半个月就会满血复活的,请谅解 Joker在这里提醒大家  身体是革命的本钱,不要透支,不要过度消耗

  4. 软件工程工具学习(1)---Visio

    要给15级软件工程上机了.开个系列记录软件工程开发过程中所会用到的一些工具的学习. 第一篇---软件分析与设计工具 Microsoft Visio Visio 介绍 1.Visio是一款矢量图形与图标 ...

  5. 财付通API

    开发财付通API的步骤: 1.首先开发财付通API时先获取商户号和密钥: 财付通测试号:商户号String partner = "1900000109";密钥String key ...

  6. JS比较思维模型

    在这里,要分享的JS中两种思维方式: 1)面向对象风格示例: function Foo(who){ this.me = who; } Foo.prototype.identify = function ...

  7. QuartusII13.0使用教程详解(一个完整的工程建立)

    好久都没有发布自己的博客了,因为最近学校有比赛,从参加到现在都是一脸懵逼,幸亏有bingo大神的教程,让我慢慢走上了VIP之旅,bingo大神的无私奉献精神值得我们每一个业界人士学习,向bingo致敬 ...

  8. C语言学习第五章

    今天要进行一个重要元素数组的学习了.这一章要掌握什么是数组,数组怎么样命名,数组怎么样使用,以及一些常见的错误和需要注意的事项. 一.      数组的基本概念 数组是可以在内存中连续存储多个元素的结 ...

  9. 为linux系统实现回收站

    在linux系统中,经常采用"rm *"或"rm -r *"操作删除一下文件,但是有时某些文件并不是我们想要删除的,但是已经被删除.很多时候都是悲剧的,数据是难 ...

  10. 【转】10 条提升 Android 性能的建议

    每个人都知道一个 App 的成功,与这个 App 的性能体验有着很密切的关系.但是如何让你的 App 拥有极致性能体验呢?在 DroidCon NYC 2015 的这个分享里,Boris Farber ...