我有一个非常简单的问题,但对我来说却很难,因为这是我第一次尝试使用二进制文件,而且我不太理解它们。我想做的就是将一个整数写入二进制文件。
我这样做:
#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的那一行,我不理解它。
先感谢您的帮助。
reinterpret_cast<const char *>(&num)
,并省略file.close()
和return 0
,因为所有这些都会自动发生。 - Kerrek SB&num
的类型转换为const char *
,类似于您当前的转换,但这是一种更明确的编写意图的方式,而不是粗糙的C转换。这只是风格和技巧的问题,但在C++中,您应该习惯于精确地表达您想要的内容。 - Kerrek SB