我有一個函數可以獲取ifstream變量,但是我必須在某些情況下寫入這個文件。例如。ifstream - > ofstream C++
main()
{
ifstream dataFile("filename.txt");
foo(dataFile);
}
void foo(ifstream &df)
{
if(df.good()) {...}
else {
//here I need to write str into the "filename.txt"
//but I don't know how to do it properly!
}
}
正如我可以想像,最簡單的方法是讓某種方式從DF foo中(文件名)......怎麼會呢?
想象: 我不能使用fstream。 由於某種原因我只有ifstream &和不知道文件的名稱。 例如我從某些封閉的庫函數中獲得ifstream &。
不要按值傳遞流,請參考它。 'void foo(ifstream&df)' – andre 2013-04-04 13:15:01
您可以將文件名作爲參數傳遞給foo嗎?如果可以的話,只需在foo中實例化一個std :: ostream(filename)並使用它。否則,你可以用fstream(它同時支持)輸入和輸出來替換ifstream。 – utnapistim 2013-04-04 13:16:13
難道你不能改變函數,所以它需要'fstream'而不是'ifstream'? 'ifstream'專門用於從文件讀取*,而不用於寫入。 – 2013-04-04 13:18:58