【发布时间】:2017-03-24 13:44:07
【问题描述】:
此代码创建大小为 2338 字节的文件
ofstream ofs("out", ios::binary);
ofs << htonl(1);
int size = sizeof(htonl(1));
for(int i = 0; i < 500; i++){
ofs << htons((unsigned short)(sin(i/5)*1000));
size += sizeof(htons((unsigned short)(sin(i/5)*1000)));
}
cout << "file size : " << size << endl;
ofs.close();
但输出是“文件大小:1004”,为什么文件大小实际上不是 1004 字节?
【问题讨论】:
-
查看
sizeof的作用。提示:它不会给你打印时的字节数。 -
i/5是这里的整数除法吗? -
@Borgleader 我已经解决了这个问题,但感谢您的观察
-
@nwp 我认为在二进制模式下它会打印字节,而不是数字的字符表示