用ofstream写入文件错误

error writing to file with ofstream

本文关键字:文件 错误 ofstream      更新时间:2023-10-16

我有一个问题,写数字到文件与ofstream。当我写数字时,有这样的字符,而不是数字。我写入文件的方法是:

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

是否有任何方法是正确的,或者只是使用另一个filewriter方法?谢谢。

编辑:

p_file << (int) _b;

工作好。由于

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

如果想要获得数字,可以将其强制转换为另一个整型:

p_file << static_cast<int>(_b);

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

如果是,则p_file输出一个ASCII值为20的字符。这就是您在文件中看到的内容。

如果你想打印20,可以这样做:

p_file << (int)_b;    

或者直接将_b的数据类型从byte更改为int

变化

byte _b = 20; 

int _b = 20;

byte可能在代码的某个地方被类型定义为char