【问题标题】:error writing to file with ofstream使用 ofstream 写入文件时出错
【发布时间】:2011-08-26 09:38:46
【问题描述】:

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

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

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

编辑:

p_file << (int) _b;

工作正常。谢谢

【问题讨论】:

  • "什么是byte?"意思是“什么是byte?”。类型名byte不是内置于语言中,而是必须在某处定义。

标签: c++ io ofstream


【解决方案1】:

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

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

p_file << static_cast<int>(_b);

【讨论】:

    【解决方案2】:

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

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

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

    p_file << (int)_b;    
    

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

    【讨论】:

      【解决方案3】:

      改变

      byte _b = 20; 
      

      int _b = 20;
      

      byte 可能是代码中某处的char 的typedef。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多