不能完整的读取dat文件是怎么回事

贵生 2016-06-12 10:44:10
以下是我的代码:
  
ifstream::pos_type size;
char * memblock;
std::ifstream FastFile("d:\\demo.dat");



if (FastFile.is_open(), ios::in|ios::binary)
{
size = FastFile.tellg();
memblock = new char [size];
FastFile.seekg (0, ios::beg);
FastFile.read (memblock, size);
FastFile.close();

}



然而这个memblock读出来的东西是我原来文件里的前几个字节,请各位指点一下
...全文
309 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2016-06-14
  • 打赏
  • 举报
回复
不是应该放在打开的地方? std::ifstream FastFile("d:\\demo.dat", ios::in|ios::binary); if (FastFile.is_open() ) {
贵生 2016-06-13
  • 打赏
  • 举报
回复
这里应该没错
贵生 2016-06-12
  • 打赏
  • 举报
回复
要怎么才能完整显示?
Eleven 2016-06-12
  • 打赏
  • 举报
回复
引用 4 楼 winds123 的回复:
那要怎么完整的读出来?
读到BYTE[]中,然后将其格式化为char[],再显示出来即可。
homesos 2016-06-12
  • 打赏
  • 举报
回复
看看size对不对,如果对,就看看 memblock的内存中数据对不对,不知道最后是怎么使用的memblock。 获取文件尺寸有时会有问题,可以考虑用循环读取直至EOF。
用户 昵称 2016-06-12
  • 打赏
  • 举报
回复
已经完整的读出来了,问题是你如何显示的问题。
贵生 2016-06-12
  • 打赏
  • 举报
回复
那要怎么完整的读出来?
Eleven 2016-06-12
  • 打赏
  • 举报
回复
你保存到char[]中,应该是你显示上的问题吧,显示char[]的话,遇到'\0'字符串显示就结束了。
贵生 2016-06-12
  • 打赏
  • 举报
回复
是一样大小 的,另请问,怎么上传附件 ?
lx624909677 2016-06-12
  • 打赏
  • 举报
回复
看一下size变量的值,和文件本身的大小是一样的吗
zgl7903 2016-06-12
  • 打赏
  • 举报
回复
引用 楼主 winds123 的回复:
以下是我的代码:
  
	ifstream::pos_type size;
	char * memblock;
	std::ifstream FastFile("d:\\demo.dat");
 


	if (FastFile.is_open(), ios::in|ios::binary)
	{
		size = FastFile.tellg();
		memblock = new char [size];
		FastFile.seekg (0, ios::beg);
		FastFile.read (memblock, size);
		FastFile.close();

	}

 
然而这个memblock读出来的东西是我原来文件里的前几个字节,请各位指点一下
if (FastFile.is_open(), ios::in|ios::binary) 写错了?
贵生 2016-06-12
  • 打赏
  • 举报
回复
文件尺寸看了下,没有问题,这个memlock里东西 是一条fast消息体,从文件里读出来后交给解码器去解码,解码函数接受unsigned char * 类型的参数

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧