将整数写入二进制文件(C ++)

时间:2012-02-11 22:27:17

标签: c++ binary integer

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

我是这样做的:

#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一致,我不明白。

提前谢谢。

1 个答案:

答案 0 :(得分:26)

  

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

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

  1. 指向数据块的指针,包含要写入的内容;

  2. 一个整数值,表示此块的大小(以字节为单位)

  3. 这句话只是将这两条信息提供给ofstream.write()

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

    &num是数据块的地址(在本例中只是一个整数变量),sizeof(num)是此块的大小(例如Windows平台上的4个字节)。