急,请问用CArchive类从文件读取数据时如何判断是否到了文件末尾?

时间:2022-09-16 05:19:13
如题,我的需求就时要用CArchive类从文件一直读数据,指导读完文件中所有数据为止,不知又没有fstream流的eof这种方法??msdn上没查到确切的,多谢了

5 个解决方案

#1


怎么没人回答啊

#2


CArchive是串行化对象,不是逐个字节读取的,没必要判断文件尾,只要你把存进去的对象还原出来,不管文件有没有被读完,这个文件作为数据来说都已经是“完”了。

CArchive应该有自己的文件结构在里面,你直接读取的,应该不会是你想要的数据。

如果真的想逐个字节读取就直接用CFile好了。

如果非要用CArchive判断文件尾部,可以用GetFile( ),获取CFile*,然后用这个来判断文件尾

#3


引用 1 楼 austin_minny 的回复:
怎么没人回答啊


原来是这个意思,多谢了,其实我读的时候也是按照对象存储的顺序读,但问题是我在读出的时候需要控制我要生成多少个对象来接收读出的数据,所以想判断一下文件尾。不过已经找到办法解决了,结贴

#4


1.这里发言,表示您接受了CSDN社区的用户行为准则。

#5


楼主,你说你找到解决方法了?  是怎么弄的啊?  我现在也为这个问题纠结不已 ,一直搞不定。  还望你把你的方法告诉我,万分感谢

#1


怎么没人回答啊

#2


CArchive是串行化对象,不是逐个字节读取的,没必要判断文件尾,只要你把存进去的对象还原出来,不管文件有没有被读完,这个文件作为数据来说都已经是“完”了。

CArchive应该有自己的文件结构在里面,你直接读取的,应该不会是你想要的数据。

如果真的想逐个字节读取就直接用CFile好了。

如果非要用CArchive判断文件尾部,可以用GetFile( ),获取CFile*,然后用这个来判断文件尾

#3


引用 1 楼 austin_minny 的回复:
怎么没人回答啊


原来是这个意思,多谢了,其实我读的时候也是按照对象存储的顺序读,但问题是我在读出的时候需要控制我要生成多少个对象来接收读出的数据,所以想判断一下文件尾。不过已经找到办法解决了,结贴

#4


1.这里发言,表示您接受了CSDN社区的用户行为准则。

#5


楼主,你说你找到解决方法了?  是怎么弄的啊?  我现在也为这个问题纠结不已 ,一直搞不定。  还望你把你的方法告诉我,万分感谢