2011-08-26 46 views
0

我有一個將數字寫入帶有ofstream的文件的問題。當我寫數字時,有像這樣的字符而不是數字。我寫文件的方法是:寫入文件的流出錯時出錯

byte _b = 20; 
ofstream p_file; 
p_file.open("txt.txt", std::ios::app); 
p_file << _b;  

有什麼方法是正確的,或者只是用另一種方法FileWriter的?謝謝。

編輯:

p_file << (int) _b; 

工作正常。謝謝

+1

什麼是'byte'? – Nawaz

+0

你是什麼意思? – aborocz

+0

「什麼是'字節'?」意思是「什麼是字節」? typename'byte'不是內置於語言的**,而是必須在某處定義。 –

回答

6

我敢打賭,bytechar或其一些變體。在這種情況下,您將_b設置爲代碼爲20的字符,其中ASCII爲控制字符。流輸出將嘗試輸出字符而不是數字。

你可以將它轉換爲另一種整型,如果你想獲得數量:

p_file << static_cast<int>(_b); 
2

什麼是byte在你的代碼?我認爲這是一個unsigned char的typedef。注意C++沒有byte作爲數據類型。

如果是,則p_file將打印ASCII值爲20的字符。這就是你在文件中看到的。

如果你想打印20,而不是這樣做:

p_file << (int)_b;  

或者,乾脆的_b數據類型更改從byteint

0

變化

byte _b = 20; 

int _b = 20; 

byte可能的typedef char地方在你的代碼。