我不確定發生了什麼,但是我正在使用ofstream對象以二進制模式寫入文件。爲什麼我正在編寫打印亂碼的文件?
我寫一個字節到一個文件,但該文件被打印亂碼。它的打印這種類型的廢話:ôß
我有一個名爲ByteOutput
了一個名爲inByte
功能類中定義爲這樣:
void inByte(int byte)
{
ostreamObj.write(&buffer, byte & 255);
}
&buffer
是我使用的存儲字節一點緩衝的引用數據
在我的主,我定義了一個ofstream的OBJ和使用打開的文件的二進制:
obj.open("tester", std::ios::binary);
我寫一個字節的數據,使用使用ByteOutput
對象的文件:
writeObj.inByte(1001011);
然而,當我檢查的文件,它是所有的象形文字。它不顯示字母K,其二進制演示1001011.
我在做什麼錯?
'INT A = 1001011'。 「a」的價值是什麼?它是'1001011'而不是'75'。 – gongzhitaao
您應該傳遞寫入函數的字符數,而不是'byte&255'。 – chris
@克里斯,該指令規定我必須寫「最」顯著字節到ostream的,這就是爲什麼我'字節和255' – Pangu