我有一个函数可以获取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