在 C 中,我使用 printf("%+10.5d\n", x);打印整数 x。
我已经为 C++ io 操纵器编写了一个小测试用例,但输出格式不同:
#include <iostream>
#include <iomanip>
#include <cstdio>
int main(void)
{
int x = 3;
printf("%+10.5d\n", x);
std::cout << std::showpos << std::setw(10) << std::setprecision(5) << x << std::endl;
return 0;
}
输出是:
./testcommand +00003 +3
我在这里缺少哪个 io 操纵器来获得与 printf 相同的输出?
最佳答案
std::setfill
http://www.cplusplus.com/reference/iostream/manipulators/setfill/
用一个简短的if语句
((x>0) ? "+" : "" )
所以:
std::cout << ((x>0) ? "+" : "" ) << std::setfill('0') << std::setw(10) << std::setprecision(5) << x << std::endl;
关于c++ - 将 C 格式字符串转换为 C++ io 操纵器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886076/