使用ofstream写入文件时出错

时间:2011-08-26 09:38:46

标签: c++ io ofstream

我在使用ofstream将数字写入文件时遇到问题。当我写数字时,有像这样的字符而不是数字。我写入文件的方法是:

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

有没有办法正确,或者只是使用其他文件编写方法?感谢。

编辑:

p_file << (int) _b;

工作正常。感谢

3 个答案:

答案 0 :(得分:6)

我敢打赌,bytechar或其中的一些变体。在这种情况下,您将_b设置为代码为20的字符,其中ASCII是控制字符。流输出将尝试输出字符而不是数字。

如果您想获得数字,可以将其转换为另一种整数类型:

p_file << static_cast<int>(_b);

答案 1 :(得分:2)

代码中的byte是什么?我假设它是unsigned char的typedef。注意C ++没有byte作为数据类型。

如果是,则p_file打印ASCII值为20的字符。这就是你在文件中看到的内容。

如果您希望它打印20,请执行此操作:

p_file << (int)_b;    

或者,只需将_b的数据类型从byte更改为int

答案 2 :(得分:0)

更改

byte _b = 20; 

int _b = 20;

byte可能是代码中某处的char的typedef。