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

标签 c++ binary integer fstream

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

我是这样做的:

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

提前谢谢你。

最佳答案

The part that is giving me trouble is line with file.write, I don't understand it.

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

  1. 一个指向数据 block 的指针,其中包含要写入的内容;

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

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

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

&num 是数据 block 的地址(在这种情况下只是一个整数变量),sizeof(num) 是这个 block 的大小(例如 4 字节在 32 位平台上)。

关于c++ - 使用 C++ 将整数写入二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244563/

相关文章:

c++ - 我可以使用 SetWindowPos 将窗口放在另一个窗口后面,但如何将它放在给定窗口前面?

c++ - 读取和霍夫曼压缩 4 字节二进制字符串 STD C++ Linux 环境

Python:读取和写入二进制数据

javascript - IE9 - DataURI 到二进制 - .atob、Uint8Array 和 ArrayBuffer 的 Polyfills - 数组对于 polyfill 来说太大

c# - 为什么VB.NET和C#中整数运算结果显示不同的值?

function - Haskell 库中某处的整数分解函数?

Java 不兼容类型; JTextField 和整数

c++ - OMNeT++ 反汇编收到的消息

c++ - 如何在 2 个进程之间共享 COM 对象?

c++ - 命名 union 成员的构造函数初始化