0

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

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

有什么方法是正确的,或者只是使用另一种文件写入器方法?谢谢。

编辑:

p_file << (int) _b;

工作正常。谢谢

4

3 回答 3

6

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

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

p_file << static_cast<int>(_b);
于 2011-08-26T09:43:23.130 回答
2

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

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

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

p_file << (int)_b;    

或者,只需将_b from的数据类型更改byteint

于 2011-08-26T09:42:42.977 回答
0

改变

byte _b = 20; 

int _b = 20;

bytechar可能是您代码中某处的typedef 。

于 2011-08-26T09:42:51.037 回答