C++从文件读出空字符

acdbxzyw 2012-05-07 10:38:40
使用bitmap的时候,将其写到文件中,其中含有很多空字符。现在想要从文件中读出这些内容,重建bitmap,但是总是读不出来。请教大家如何从文件中读出空字符?
尝试过以下方法,都未见效。
///*
char *bmap = new char[HASH_SIZE];
memset(bmap, 0, HASH_SIZE);

int nCount = 0;
while(infile.good())
{
bmap[nCount++] = infile.get();
if(infile.fail())
{
PRINT("reading bmap failed!\n");
}
else if(infile.bad())
{
PRINT("reading bad!\n");
}

if(0 <= nCount)
{
infile.get(); //read a '\n'
break;
}
}
delete bmap;
//*/
/*
string bloom;
getline(infile, bloom);
//infile.get.getline();
if(HASH_SIZE != bloom.length())
{
PRINT("the memento file %d or HASH_SIZE %d has been changed!!!\n", bloom.length(), HASH_SIZE);
exit(0);
}
*/
/*
char *bmap = new char[HASH_SIZE];
memset(bmap, 0, HASH_SIZE);
infile.read(bmap, HASH_SIZE);
if(HASH_SIZE != infile.gcount())
{
PRINT("the memento file %d or HASH_SIZE %d has been changed!!!\n", infile.gcount(), HASH_SIZE);
exit(0);
}
delete bmap;
//*/
...全文
236 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
acdbxzyw 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

读写都要用write和read,还要用二进制模式打开,什么get,getline,<<之类的都是格式化操作,不能用来读写二进制数据
[/Quote]
哦,明白了。对文件操作不太熟,多谢您的指点!
qq376472696qq 2012-05-07
  • 打赏
  • 举报
回复
读写都要用write和read,还要用二进制模式打开,什么get,getline,<<之类的都是格式化操作,不能用来读写二进制数据
acdbxzyw 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

读二进制文件啊!用函数read试试呢??
[/Quote]
试过了,请看代码注释部分。
W170532934 2012-05-07
  • 打赏
  • 举报
回复
读二进制文件啊!用函数read试试呢??

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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