使用C ++将整数写入二进制文件吗?

问题描述 投票:14回答:1

我有一个非常简单的问题,这对我来说很难,因为这是我第一次尝试使用二进制文件,而且我不太了解它们。我要做的就是将一个整数写入二进制文件。

这是我的做法:

#include <fstream>
using namespace std;
int main () {
    int num=162;
    ofstream file ("file.bin", ios::binary);
    file.write ((char *)&num, sizeof(num));
    file.close (); 
    return 0;
}

你能告诉我我做错了什么吗?

给我带来麻烦的部分与file.write一致,我不明白。

谢谢你。

c++ binary integer fstream
1个回答
27
投票

给我带来麻烦的部分与file.write一致,我没有了解它。

如果您阅读了ofstream.write()方法的文档,则会看到它要求两个参数:

  1. 一个[[数据块的指针]],并带有要写入的内容;

  2. 一个整数值,表示

    此块的大小,以字节为单位

  3. 此语句仅将这两条信息提供给ofstream.write()

file.write(reinterpret_cast<const char *>(&num), sizeof(num));

[&num是数据块的地址(在这种情况下只是整数变量),sizeof(num)是该数据块的大小(例如,在Windows平台上为4字节)。
© www.soinside.com 2019 - 2024. All rights reserved.