首页 > 解决方案 > 如何在 C++ 中动态生成带有序号的文件名

问题描述

我想生成在其文件名中具有序列号的文件,其数字具有相同的宽度(附加零),如文件名应该生成如下: File_001.txt File_002.txt ..... File_020.txt

`

int main()
{
for(int i=1; i<=20; i++)
{
std::string file = "File_"+std::to_string(i)+".txt";
}
}

`

使用上面的代码,生成的文件名是: File_1.txt ...... File_20.txt

但我想生成如上所述的文件名

标签: c++file

解决方案


您需要使用std::setfillstd::setw。检查这个例子:

#include <iomanip>
#include <iostream>

int main(){    
        for(int i = 0; i < 100; ++i){
                std::stringstream ss;
                ss << std::setfill('0') << std::setw(3);
                ss << i;
                std::string my_filename = ss.str();
                std::cout << my_filename << std::endl;
        }
}

推荐阅读