【问题标题】:Left of the dot precision左点精度
【发布时间】:2013-05-09 13:57:31
【问题描述】:

我想做的是写这样的东西

file << someFunction(5) << hex << 3;

要得到这样的输出 00003 而不是 3(300 将是 00300,等等)

注意:- 抱歉,如果之前有人问过这个问题,我不知道要搜索什么词才能得到这个

编辑:- 我的意思是左边的零,我包括十六进制部分只是为了清楚我希望它与这种格式兼容

【问题讨论】:

  • 你的意思是十六进制表示,还是你的意思是左边用零填充?代码似乎指向前者,但输入输出的例子似乎指向后者。
  • 是否吐出错误或警告?

标签: c++


【解决方案1】:

我相信这就是你的意思。

#include <iostream>
#include <iomanip>
int main()
{
   std::cout << std::setw(5) << std::setfill('0') << 3 << '\n';
   return 0;
}

输出

00003

链接 setw, setfill.

编辑:另见std::internalat this question

【讨论】:

    【解决方案2】:

    使用

    file << setfill('0') << setw(5) << 3;
    

    获取00003 而不是3

    【讨论】:

      【解决方案3】:

      iomanip 是您需要搜索的内容。

      #include <iomanip>
      

      然后

      file << someFunction(5) << hex << setw(5) << setfill('0') << 3 << endl;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-23
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 2018-07-06
        • 2017-11-30
        • 2019-11-10
        • 1970-01-01
        相关资源
        最近更新 更多