在不使用函数的情况下,在C ++中将1转换为01

时间:2017-09-15 02:57:11

标签: c++

int a;
std::cout<<"Enter hour: ";
std::cin>>a;
std::cout<< a;

这只是出于质疑目的。有没有使用函数输出01而不是1的技巧?假设输入是9我想要09作为输出,但是如果输入是&#39; a&#39;为2位数,无需添加0。

3 个答案:

答案 0 :(得分:4)

我想你想要:

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

这会将字段宽度设置为2,将填充字符设置为'0'。但请注意,虽然输出a后字段宽度会重置,但填充不会。因此,如果这是暂时的,请务必在设置之前保存填充。

答案 1 :(得分:0)

也许:

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

答案 2 :(得分:0)

您可以使用精细的Boost.Format库来使用类似printf的语法格式化输出。

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

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