我在使用 ofstream 将数字写入文件时遇到问题。当我写数字时,会有这样的字符 █ 而不是数字。我写入文件的方法是:
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有什么方法是正确的,或者只是使用另一种文件写入器方法?谢谢。
编辑:
p_file << (int) _b;
工作正常。谢谢
我敢打赌那byte
是char
或其中的一些变体。在这种情况下,您将设置_b
为代码 20 的字符,在 ASCII 中是控制字符。流输出将尝试输出字符而不是数字。
如果要获取数字,可以将其转换为另一种整数类型:
p_file << static_cast<int>(_b);
你byte
的代码中有什么?我假设它是一个 typedef unsigned char
。注意 C++ 没有byte
as 数据类型。
如果是这样,则p_file
打印其 ASCII 值为 的字符20
。这就是您在文件中看到的内容。
如果您希望它打印,请执行此操作20
:
p_file << (int)_b;
或者,只需将_b
from的数据类型更改byte
为int
。
改变
byte _b = 20;
到
int _b = 20;
byte
char
可能是您代码中某处的typedef 。