c++ 前面有几个零的固定长度的字符串

背景:
想写一个文件名的字符串,名字像数字一样累加,类似于 python 代码中的:

new_name = "%06d" % (index)

代码:

#include 
#include 


std::string formatNumber(int num, int width)
{
    std::stringstream ss;
    ss << std::setw(width) << std::setfill('0') << num;
    return ss.str();
}

int main()
{
    int num1 = 1;
    int num2 = 90;
    int num3 = 120;
    int num4 = 2000;

    std::cout << formatNumber(num1, 6) << std::endl;
    std::cout << formatNumber(num2, 6) << std::endl;
    std::cout << formatNumber(num3, 6) << std::endl;
    std::cout << formatNumber(num4, 6) << std::endl;

    return 0;
}

输出:

000001
000090
000120
002000

在上面的代码中,formatNumber函数接受整数和宽度作为参数,并使用std::stringstream将整数转换为字符串,并使用std::setw()设置宽度,std::setfill()设置填充字符为’0’,其中填充字符还可以为其他字符,例如’#’ .

你可能感兴趣的:(c/c++,c++,开发语言)