2013-03-30 84 views
0

我有一个代码:在多个文本读取文件

`int main() { 
int year; 

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

string birth = ss.str(); 

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


}` 

我想在这个130个的文本文件,用于循环读取,并且每个文本文件看起来像“yob1880.txt”或“yob1975.txt”等等。我知道ifstream yob(“yob”birth“.txt”)不起作用,我只是想说明我想做什么。如何将字符串“yob”添加到字符串年份和字符串“.txt”?

谢谢

回答

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()); 
+0

所以我该怎么办输入文件? ifstream文件(ss.str()。c_str())不起作用。当我将文件读入数组后尝试关闭文件时,它不起作用 – user22

+0

你打算如何打印文件? – osandov