这段以二进制方式写入文件的代码哪里有问题,求高人指点

[复制链接]
查看11 | 回复1 | 2012-9-24 14:59:47 | 显示全部楼层 |阅读模式
你这代码的核心就这一句:outfile.write((char *)(&i),sizeof(i))。因为sizeof(i)是求变量i占几个字节,所以它永远等于4。那么这一句的意思就是将变量i的首地址强制为char型再开始连续向outfile对象代表的文件中写入4个字节。i是从2开始到500,它只占1或2个字节,所以写入2时记录的二进制内容是00000010 00000000 00000000 00000000,写入4时则为00000100 00000000 00000000 00000000...而写入256时为00000000 00000001 00000000 00000000,写入258时则是00000010 00000001 00000000 ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行