使用 ofstream 写入文件时出错

发布于 2024-12-02 01:43:46 字数 306 浏览 1 评论 0原文

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

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

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

编辑:

p_file << (int) _b;

工作正常。谢谢

I have a problem with writing number to a file with ofstream. When i write numbers there are characters like this █ instead of numbers. The method i write to the file is:

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

Is there any way to be right, or just use another filewriter method? Thanks.

EDIT:

p_file << (int) _b;

works fine. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苏辞 2024-12-09 01:43:47

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

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

p_file << static_cast<int>(_b);

I bet that byte is char or some variant thereof. In that case you are setting _b to the character with code 20, which in ASCII is a control character. The stream output will try to output the character not the number.

You can cast it to another integral type if you want to obtain the number:

p_file << static_cast<int>(_b);
悲欢浪云 2024-12-09 01:43:47

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

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

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

p_file << (int)_b;    

或者,只需将 _b 的数据类型从 byte 更改为 int.

What is byte in your code? I assume it is a typedef of unsigned char. Note C++ doesn't have byte as data-type.

If so, then p_file prints a character whose ASCII value is 20. That is what you see in the file.

Do this if you want it to print 20 instead :

p_file << (int)_b;    

Or, simply change the data type of _b from byte to int.

殊姿 2024-12-09 01:43:47

更改

byte _b = 20; 

int _b = 20;

byte 可能是在代码中的某处将 typedef 为 char

Change

byte _b = 20; 

to

int _b = 20;

byte is probably typedef to char somewhere in your code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文