gpt4 book ai didi

c++ - 二进制文件大小大于预期的 C++

转载 作者:行者123 更新时间:2023-11-30 01:08:22 26 4
gpt4 key购买 nike

此代码创建大小为 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 字节?

最佳答案

如果您在文本编辑器中打开该文件,您很快就会发现问题所在。

数字以十进制表示形式打印,而不是以内部(二进制)表示形式书写。

相反,使用 ostream::write :

uint32_t foo = htonl(1);
ofs.write(reinterpret_cast<char*>(&foo), sizeof(foo));

关于c++ - 二进制文件大小大于预期的 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43001109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com