我有一个非常简单的问题,这对我来说很困难,因为这是我第一次尝试使用二进制文件,但我不太了解它们。我要做的就是将一个整数写入二进制文件。
我是这样做的:
#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()
方法的文档,您会看到它需要两个参数:
一个指向数据 block 的指针,其中包含要写入的内容;
一个整数值,表示此 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/