在我正在閱讀的書中,它開始討論二進制文件,以及如何輸出到二進制文件,類似於我們如何輸出到文本文件。所以我開始閱讀更多,並想嘗試一下;然而,我遇到了一個看似簡單的問題,但考慮到我對二進制文件缺乏理解,我並沒有正確理解它。在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