我有20個數字的數組。我正在嘗試將每個數字添加到數組中,但我正在使用二進制。我以二進制形式做這件事的原因是因爲我正在努力爲明天的考試做好準備。這是我的代碼。爲什麼使用寫入函數而不是整數將奇怪的符號寫入二進制文件?
file.open(fileName, ios::out | ios::binary);
for (int number = 0, index = 0; index < 20; index++) {
number = numbers[index];
if (!file.eof()) {
file.write(reinterpret_cast<char *>(&number), sizeof(number));
} else {
break;
}
}
文本文件的輸出是: 「$ 1 @Qdyꩃ·迪!」
爲什麼?我知道該數組已填充,因爲我使用了一個cout語句來查看其中的內容。我也知道用於獲取數字的變量的工作原理是因爲我使用了cout來查看它是否正確地從數組中獲取值。
因爲你寫的東西不是文本,所以當解釋爲文本時,它看起來像垃圾? – immibis
數字怎麼不是文字?我不允許在二進制模式下將整數寫入文本文件嗎? –
你在想'reinterpret_cast'將int轉換爲文本嗎?因爲它沒有。而'int'是一個二進制值,而不是一系列字符。所以你正在寫這個二進制數據。 – TheUndeadFish