【发布时间】:2012-03-03 21:54:39
【问题描述】:
我有一个非常简单的问题,这对我来说很困难,因为这是我第一次尝试使用二进制文件,但我不太了解它们。我要做的就是将一个整数写入二进制文件。
我是这样做的:
#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,我不明白。
提前谢谢你。
【问题讨论】:
-
有效吗?它与您的预期有何不同?
-
Nitpick 建议:1) 说
reinterpret_cast<const char *>(&num),并省略file.close()和return 0,因为所有这些都是自动发生的。 -
@KerrekSB 你能解释一下 reinterpret_cast
(&num) 的作用吗? -
它将
&num的类型转换为const char *,类似于您当前的演员表,但与粗略的C 演员表相比,它是一种更深思熟虑的方式来编写您想要的内容。这只是风格和技巧的问题,但您应该习惯于在 C++ 中准确地说您想要什么。 -
@KerrekSB:是的,是的。当您不假思索地打字时,就会发生这种情况。为了我的辩护,你可以改写这样的句子:“...,据我所知只有一些编译器...”,标记的短语是'as far as I'的同义词知道”。
标签: c++ binary integer fstream