在C++中不使用函数将1转换为01

ryevplcw  于 2023-01-06  发布在  其他
关注(0)|答案(4)|浏览(455)
int a;
std::cout<<"Enter hour: ";
std::cin>>a;
std::cout<< a;

这只是为了提问的目的。有没有什么技巧可以不用函数就输出01而不是1?假设如果输入是9,我想输出09,但如果'a'是2位数,就不需要加0。

jdgnovmf

jdgnovmf1#

我认为你想要:

std::cout << std::setw(2) << std::setfill('0') << a;

这会将字段宽度设置为2,将填充字符设置为'0'。但是,请记住,虽然字段宽度在输出a后重置,但填充不会重置。因此,如果这是临时的,请确保在设置之前保存填充。
顺便说一句,这些函数在"iomanip"库中

avkwfej4

avkwfej42#

您可以使用良好的Boost.format库,以类似printf的语法格式化输出。

#include <boost/format.hpp>
#include <iostream>

int main()
{
    std::cout << boost::format("%02d") % 1 << '\n';
}
cngwdvgl

cngwdvgl3#

也许:

std::cout << ((a <= 9) ? 0 : "") << a;
xfb7svmp

xfb7svmp4#

您可以使用:

#include <iomanip>
ans=1;
cout<<setw(2)<<setfill('0')<<ans<<endl;

输出:01

相关问题