我想生成文件名中具有序号且宽度相同(后缀零)的数字的文件,如文件名应如下生成: 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
但是我想生成如上所述的文件名
答案 0 :(得分:0)
您需要使用std::setfill
和std::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;
}
}
答案 1 :(得分:0)
使用字符串流。使用stringstream可以输出到字符串,然后使用常规的I / O操纵器可以添加前导零。
#include <sstream>
#include <imanip>
int main()
{
for (int i=1; i<=20; i++)
{
std::stringstring buffer;
buffer << "File_" << std::setfill('0') << std::setw(3) << i << ".txt";
std::string file = buffer.str();
...
}
}