在 ofstream 的文件名括号内输入代码中的值(如循环中的 i)的 C++ 语法

C++ Syntax to enter values from code (like i from a loop) inside file name parenthesis for 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 上?此外,我还需要附加其他基本内容,例如单字字符串等。

提前致谢!

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

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

等等。

我可能会像这样在循环中创建两个变量:

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