ifstream --> ofstream C++
ifstream --> ofstream c++
我有一个函数可以获取ifstream变量,但在某些情况下我必须写入该文件。例如
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!
}
}
正如我所能想象的,最简单的方法是从foo((中的df中获取文件名。。。但是怎么做呢?
想象一下:我不能使用fstream。出于某种原因我只有ifstream&和不知道文件的名称。例如,我得到ifstream&来自某个封闭库函数。
使用fstream而不是ifstream:
fstream dataFile("filename.txt",ios::in | ios::out | ios::app);
有了这个,你就可以读写文件了。
当然,通过引用传递fstream对象,而不是通过值传递。fstream是不可复制的。
不幸的是,考虑到您只有一个ifstream
而没有文件名的限制,没有可移植的方法可以写回该文件。
可能有不可移植的方法来解决此问题。例如,一些unix实现可能在filebuf
对象上提供fd
函数,您可以从ifstream
中的rdbuf
获得该函数。Windows可能提供也可能不提供类似的功能。
最后,我要指出的是,听起来你可能解决了错误的问题,你至少应该花点时间访问你的设计(以及为什么你需要写一个你不知道名字的文件(。
相关文章:
- std::ofstream 作为类成员删除复制构造函数?
- ofstream::close() 是否在 Linux 上调用同步?
- 如何在软件代码中使用ofstream创建文件
- Ofstream和IFSTREAM有什么区别?
- 使用 libssh 从 SFTP 服务器下载文件并使用 C++ 将其写入 ofstream?
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- fstream / ifstream / ofstream 对象如何转换为布尔值
- 使用 auto_ptr<std::ofstream> 对象
- 传递数组结构、ofstream 和 interger 以运行
- 有没有办法使用 ofstream 保存屏幕截图?
- 使用 ofstream 写入文本文件时断言失败
- 当 ofstream 指针位于 std::map 中时,文件写入不会发生 C++.
- Ofstream一直给我函数的最后一行,而不是显示所有内容
- 如何将 std::ofstream& 传递给函数参数?
- BigInteger:在 C++ 中使用 ofstream 写入文件时如何将基数更改为 2?
- 数据不是用 ofstream 写入的,即使返回成功也是如此
- ofstream将额外的零字节写入Unix服务器上的文件
- 为什么我不能将 Windows 环境路径与 ofstream 一起使用来编写文本文件?
- 为什么 ofstream 比 fprintf 慢?
- 派生 std::ofstream 和重载运算符<<