0

我有一个代码:

`int main() {
 int year;

for (year=1880; year<=2011; year++) {
stringstream ss;
ss << year;

string birth = ss.str();

ifstream yob("yob"birth".txt");
}


}`

我想用这个 for 循环读取 130 个文本文件,每个文本文件看起来像“yob1880.txt”或“yob1975.txt”等。我知道 ifstream yob("yob"birth".txt") 没有我只是想说明我想做的事情。如何将字符串“yob”添加到字符串年份和字符串“.txt”?

谢谢

4

1 回答 1

1

使用stringstream. 然后,您可以构建一个字符串并调用ss.str()它来检索该字符串。例如,

std::stringstream ss;
int n = 5;
ss << "file" << n << ".txt";
std::cout << ss.str() << std::endl;

这将写入file5.txt标准输出。

编辑:刚刚检查了文档,它看起来像 std::ifstream 需要一个 C 字符串,而不是 a std::string,所以你应该调用c_str()结果字符串,例如,

std::ifstream file(ss.str().c_str());
于 2013-03-30T05:09:13.083 回答