求问 二进制方式对文件读写

aa6544032310610 2012-12-23 04:59:20
ofstream fout("压缩文件.txt",ios_base::binary);
fout.write((char *)(&a),sizeof(a);

调试时看到 (char *)(&a)为1 但是在文件 压缩文件.txt 中什么也没写入 为什么
...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhyhw2001 2012-12-26
  • 打赏
  • 举报
回复
你看文件大小,应为4个字节,用二进制方式打开文件,如UlterEdit或VS的编辑器打开,可以看到内容为01 00 00 00
ForestDB 2012-12-26
  • 打赏
  • 举报
回复
1对应的ASCII是多少? '1'呢?
miliggate 2012-12-25
  • 打赏
  • 举报
回复
你关闭文件木有,有木有把文件写回去, 你文件默认读写是清除文件内容呢
szulee 2012-12-24
  • 打赏
  • 举报
回复
1 != ‘1’
赵4老师 2012-12-24
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
sxldfang 2012-12-24
  • 打赏
  • 举报
回复
int a=0x44434241; ofstream fout("压缩文件.txt",ios::binary); fout.write((char *)(&a),sizeof(a)); fout.close(); -------------------------------- 用记事本打开“压缩文件.txt”,可看到内容是“ABCD”
prajna 2012-12-23
  • 打赏
  • 举报
回复
你用的是 ios_base::binary 但是在文件 压缩文件.txt 中什么也没写入 为什么 如果你用記事本打開,是什麽也看不到的,因爲是二進制文件。 你看看文件大小,不為0就對了。
aa6544032310610 2012-12-23
  • 打赏
  • 举报
回复
求教啊 有没有知道
aa6544032310610 2012-12-23
  • 打赏
  • 举报
回复
少打了 不是这问题啊 都能调试
lxw_it 2012-12-23
  • 打赏
  • 举报
回复
fout.write((char *)(&a),sizeof(a); 语法错误吧? 少个右括号啊

64,654

社区成员

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

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