我有一个代码:
`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”添加到字符串year和字符串“.txt”?
谢谢
答案 0 :(得分: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字符串,而不是std::string
,所以你应该在结果字符串上调用c_str()
,例如
std::ifstream file(ss.str().c_str());