C ++语法从forstream的文件名括号内的代码(如来自循环中的i)输入值

时间:2015-07-29 15:45:22

标签: c++ file ifstream ofstream

我有一个简单的问题,但我找不到任何文档。我试图使用ofstream和ifstream来读取不同数字的文件名,并输出具有相同数字的新文件数字。

例如,如果我有文件input1.txt,input2.txt和input3.txt,我需要output1.txt,output2.txt和output3.txt,我会这样做:

for(i = 1; i <= 3; i++) {
ifstream fin("input"i".txt");
ofstream fout("output"i".txt");

... do stuff ...

fin.close();
fout.close()
}

现在,显然这种文件名的语法不起作用。有谁知道我怎么能追加1号?此外,我还需要附加其他基本内容,例如单字符串等。

提前致谢!

2 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是使用字符串:

std::ifstream fin(std::string("input") + std::to_string(i) + ".txt");

等等。

答案 1 :(得分:0)

我可能只是在循环中创建两个变量:

std::string in = "input" + std::to_string(i) + ".txt";
std::string out = "output" + std::to_string(i) + ".txt";