在 ifstream 预期的地方传递 fstream
pass in fstream where ifstream expected
void foo(ifstream &ifs)
{
//do something
}
int main()
{
fstream fs("a.txt", fstream::in);
foo(fs); //error, can't compile
}
上面的代码无法编译,好像我不能用fstream
对象初始化ifstream &
?如果我这样做怎么办:
foo(static_cast<ifstream>(fs));
或
foo(dynamic_cast<ifstream>(fs));
可能你想让 foo(( 采用 istream。 如注释所示,这是 ifstream 和 fstream 的基本类型。
void foo( istream & is )
这些类在 cplusplus.com 有一个很好的参考:
- http://www.cplusplus.com/reference/iostream/istream"输入流">
- http://www.cplusplus.com/reference/iostream/ifstream "输入文件流类">
- http://www.cplusplus.com/reference/iostream/fstream "输入/输出文件流类">
相关文章:
- 从类型std::函数传递变量失败,尽管调用方期望的类型完全相同
- 如何正确使用 fstream 并在 char 数组中传递数据?
- 通过 C++ 中的指针将子对象值传递给被调用方类
- 将非左值作为常量引用参数传递.临时是在本地作用域还是在调用方作用域中创建的?
- 被调用方如何知道参数是通过寄存器而不是堆栈传递的
- 传递类 by-value 时,调用方或被调用方是否调用析构函数
- 为什么当数组作为调用方函数中的参数传递时,不能在被调用函数中使用 foreach 循环打印数组的值
- 将 fstream 数组传递给函数?
- C++:尝试将 fstream 作为参数传递时删除了函数?
- 将 fstream ">>" 作为函数参数传递
- 当按引用传递参数存储在被调用方对象中,然后被调用方删除时会发生什么情况
- 在 ifstream 预期的地方传递 fstream
- C++释放传递给函数中参数的内存,或者将其留给调用方
- 试图将指针作为参数传递给指向文件的fstream成员
- 将数据从调用方线程传递到另一个 boost::thread 中的方法
- cv::PCA (openCV)计算数据本身的协方差矩阵?或者我们应该传递协方差矩阵给它
- 通过CLI从c#向c++传递一个fstream(或等价)
- 逐字符使用fstream进行读取,并将fstream传递给函数进行进一步读取
- 传递fstream以充当结构成员
- C++风格,将调用方文件和行传递给函数(相当于__file__和__line_)