我在使用ofstream将数字写入文件时遇到问题。当我写数字时,有像这样的字符而不是数字。我写入文件的方法是:
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有没有办法正确,或者只是使用其他文件编写方法?感谢。
编辑:
p_file << (int) _b;
工作正常。感谢
答案 0 :(得分:6)
我敢打赌,byte
是char
或其中的一些变体。在这种情况下,您将_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。