本文目录一览:
使用CFile类读取文件如何判断文件结束
如果是用二进制方式读取,那存放的缓冲应该用char类型或者Byte类型,你用unsigned short int类型肯定不行啊,等读取好了后,要对这个缓冲进行解析,按照已知的字节存放方式,将这个缓冲中的数据放到相应的类型中,这样才能得到人看的懂的东西啊,这中间要用到位操作运算,比如第238字节到第241字节中放的是一个整型数据,那你就要先将238字节中的数据赋给一个int,然后对int左移8位,然后将239中数据和int这个变量做或操作,这样相当于int中有两个字节数据了,一次类推,直到把四个字节数据都放进int型变量,这样输出这个int才是人看的懂的
用CFile怎么判打开的文件已到文件尾
CFile里有成员函数
Seek(LONG lOff,UINT nFrom);
能将文件流定位到你想要的数据,然后读取
如读取一个long的变量
long lData;
m_file.Read(lData,sizeof(long));
即可!
急请教用CArchive类从文件读取数据时怎么判断是否到了文件末尾
CArchive是串行化对象,不是逐个字节读取的,没必要判断文件尾,只要你把存进去的对象还原出来,不管文件有没有被读完,这个文件作为数据来说都已经是“完”了。
CArchive应该有自己的文件结构在里面,你直接读取的,应该不会是你想要的数据。
如果真的想逐个字节读取就直接用CFile好了。
如果非要用CArchive判断文件尾部,可以用GetFile(),获取CFile*,然后用这个来判断文件尾