int a; std::cout<<"Enter hour: "; std::cin>>a; std::cout<< a;
这只是为了提问的目的。有没有什么技巧可以不用函数就输出01而不是1?假设如果输入是9,我想输出09,但如果'a'是2位数,就不需要加0。
jdgnovmf1#
我认为你想要:
std::cout << std::setw(2) << std::setfill('0') << a;
这会将字段宽度设置为2,将填充字符设置为'0'。但是,请记住,虽然字段宽度在输出a后重置,但填充不会重置。因此,如果这是临时的,请确保在设置之前保存填充。顺便说一句,这些函数在"iomanip"库中
'0'
a
avkwfej42#
您可以使用良好的Boost.format库,以类似printf的语法格式化输出。
#include <boost/format.hpp> #include <iostream> int main() { std::cout << boost::format("%02d") % 1 << '\n'; }
cngwdvgl3#
也许:
std::cout << ((a <= 9) ? 0 : "") << a;
xfb7svmp4#
您可以使用:
#include <iomanip>
ans=1; cout<<setw(2)<<setfill('0')<<ans<<endl;
输出:01
4条答案
按热度按时间jdgnovmf1#
我认为你想要:
这会将字段宽度设置为2,将填充字符设置为
'0'
。但是,请记住,虽然字段宽度在输出a
后重置,但填充不会重置。因此,如果这是临时的,请确保在设置之前保存填充。顺便说一句,这些函数在"iomanip"库中
avkwfej42#
您可以使用良好的Boost.format库,以类似printf的语法格式化输出。
cngwdvgl3#
也许:
xfb7svmp4#
您可以使用:
输出:01