用C ++输出运算符打印前导零(相当于printf)?
我如何使用C ++格式化我的输出? 换句话说,什么是C ++等同于使用printf
这样的:
printf("%05d", zipCode);
我知道我可以在C ++中使用printf
,但我更喜欢输出运算符<<
。
你会只使用以下?
std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;
这将做的伎俩:
#include <iostream> #include <iomanip> using namespace std; cout << setw(5) << setfill('0') << zipCode << endl; // or use this if you don't like 'using namespace std;' std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;
控制填充的最常见的IO操纵器是:
-
std::setw(width)
设置字段的宽度。 -
std::setfill(fillchar)
设置填充字符。 -
std::setiosflags(align)
设置alignment,其中align是ios :: left或者ios :: right。
使用setw和setfill调用:
std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;
cout << setw(4) << setfill('0') << n << endl;
从:
要么,
char t[32]; sprintf_s(t, "%05d", 1);
将输出00001作为OP已经想要做的事情