如何将 ifstream 转换为 istream
How can I convert an ifstream to an istream
有什么方法可以将ifstream
转换为istream
吗?我有一个名为 getToken(istream* br)
的函数,它接受istream
作为参数,但在我main()
中,我使用ifstream
来读取文件,并且必须使用相同的ifstream
来调用getToken
。如何克服此问题?
正如评论中提到的,你不需要做任何花哨的事情。std::ifstream
类型继承自 std::istream
,因此任何采用istream*
的函数都可以将指向ifstream
的指针作为输入。例如:
string getToken(istream* stream) {
...
}
ifstream fileStream;
getToken(&fileStream);
流类是专门为使这样的操作成为可能而设计的。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 将无符号char*转换为std::istream*C++
- 如何将QByteArray转换为std::istream或std::ifstream?
- 如何在 c++ 中将 IStream 转换为 Base64 字符串
- 如何将常量无效*转换为istream?
- 将缓冲区转换为在现有程序中工作的iStream
- 将 istream 转换为 ifstream 时将 std::cin 传递到参数时出现问题
- 将Boost的BufferStream转换为Istream
- 将 boost::iostream::stream<boost::iostreams::source> 转换为 std::istream
- 如何将 ifstream 转换为 istream
- Istream 到字符串的转换,C++ 中的 个字符
- 将 istream 运算符>>转换为 istream getline
- 在窗口中将FILE*或HANDLE转换(ASSIGN)为IStream
- 如何将 istream * 转换为字符串或仅打印它
- 将istream转换为ifstream
- istream中发生了什么隐式转换?
- 如何将 std::istream 转换为 std::wistream
- 转换为python.使用boost::python时,将IO对象转换为std::istream
- 无法将“const char*”转换为“std::istream*”