我有一个将数字写入带有ofstream的文件的问题。当我写数字时,有像这样的字符而不是数字。我写文件的方法是:写入文件的流出错时出错
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有什么方法是正确的,或者只是用另一种方法FileWriter的?谢谢。
编辑:
p_file << (int) _b;
工作正常。谢谢
我有一个将数字写入带有ofstream的文件的问题。当我写数字时,有像这样的字符而不是数字。我写文件的方法是:写入文件的流出错时出错
byte _b = 20;
ofstream p_file;
p_file.open("txt.txt", std::ios::app);
p_file << _b;
有什么方法是正确的,或者只是用另一种方法FileWriter的?谢谢。
编辑:
p_file << (int) _b;
工作正常。谢谢
我敢打赌,byte
是char
或其一些变体。在这种情况下,您将_b
设置为代码为20的字符,其中ASCII为控制字符。流输出将尝试输出字符而不是数字。
你可以将它转换为另一种整型,如果你想获得数量:
p_file << static_cast<int>(_b);
什么是byte
在你的代码?我认为这是一个unsigned char
的typedef。注意C++没有byte
作为数据类型。
如果是,则p_file
将打印ASCII值为20
的字符。这就是你在文件中看到的。
如果你想打印20
,而不是这样做:
p_file << (int)_b;
或者,干脆的_b
数据类型更改从byte
到int
。
变化
byte _b = 20;
到
int _b = 20;
byte
可能的typedef char
地方在你的代码。
什么是'byte'? – Nawaz
你是什么意思? – aborocz
“什么是'字节'?”意思是“什么是字节”? typename'byte'不是内置于语言的**,而是必须在某处定义。 –