我有一個將數字寫入帶有ofstream的文件的問題。當我寫數字時,有像這樣的字符而不是數字。我寫文件的方法是:寫入文件的流出錯時出錯
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有什麼方法是正確的,或者只是用另一種方法FileWriter的?謝謝。
編輯:
p_file << (int) _b;
工作正常。謝謝
我有一個將數字寫入帶有ofstream的文件的問題。當我寫數字時,有像這樣的字符而不是數字。我寫文件的方法是:寫入文件的流出錯時出錯
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有什麼方法是正確的,或者只是用另一種方法FileWriter的?謝謝。
編輯:
p_file << (int) _b;
工作正常。謝謝
我敢打賭,byte
是char
或其一些變體。在這種情況下,您將_b
設置爲代碼爲20的字符,其中ASCII爲控制字符。流輸出將嘗試輸出字符而不是數字。
你可以將它轉換爲另一種整型,如果你想獲得數量:
p_file << static_cast<int>(_b);
什麼是byte
在你的代碼?我認爲這是一個unsigned char
的typedef。注意C++沒有byte
作爲數據類型。
如果是,則p_file
將打印ASCII值爲20
的字符。這就是你在文件中看到的。
如果你想打印20
,而不是這樣做:
p_file << (int)_b;
或者,乾脆的_b
數據類型更改從byte
到int
。
變化
byte _b = 20;
到
int _b = 20;
byte
可能的typedef char
地方在你的代碼。
什麼是'byte'? – Nawaz
你是什麼意思? – aborocz
「什麼是'字節'?」意思是「什麼是字節」? typename'byte'不是內置於語言的**,而是必須在某處定義。 –