2011-08-26 48 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地方在你的代码。