在我正在阅读的书中,它开始讨论二进制文件,以及如何输出到二进制文件,类似于我们如何输出到文本文件。所以我开始阅读更多,并想尝试一下;然而,我遇到了一个看似简单的问题,但考虑到我对二进制文件缺乏理解,我并没有正确理解它。在C++中输出为二进制文件时遇到困难
所以我们可以说我创建了一个结构和一个函数。如下所示。现在
struct celebrities
{
char name[15];
char lastName[15];
};
void BinaryCreation(celebrities);
int main()
{
celebrities actors = { "Denzel", "Washington" };
BinaryCreation(actors);
system("pause");
}
,我将创建一个二进制文件:
void BinaryCreation(celebrities actors)
{
fstream file;
file.open("binaryfile.txt", ios::binary | ios::out);
现在,在书中也指出,我应该写类似下面的输出成二进制:
file.write(address, size)
这是哪里让人困惑,看到如果我有一个结构,我到底该怎么做?我尝试了以下内容:
file.write(&actors.name, sizeof(actors.name));
file.write(&name, sizeof(name));
也试过重新解释转换。 我也做了以下
file.write(actors.name, sizeof(actors.name));
这没有错误的意识的工作,但它会输出到文本格式(ASCII)文件。
我确定这很简单,我忽略了一些东西,但目前我无法弄清楚。
将输出类型更改为二进制不会奇迹般地将您的文本更改为其他内容。它仍然是文本,仍然会被写为相同的值。区别在于二进制输出可以包含不是文本的字符(如NULL,或0x01或0x02)。 –
@KenWhite我明白了,这就是把我抛弃的原因,我期待着一堆符号,而是得到了相同的文字。感谢您的意见。 – ReMaKe