2013-03-30 124 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