我有什么办法可以将ifstream
转换为istream
吗?我有一个名为getToken(istream* br)
的函数,它接受istream
作为参数,但在我的main()
中,我使用ifstream
来读取文件,我必须使用相同{ {1}}致电ifstream
。我怎样才能克服这个问题?
答案 0 :(得分:5)
正如评论中所提到的,你不需要做任何奇特的事情。 std::ifstream
类型继承自std::istream
,因此任何带istream*
的函数都可以将指向ifstream
的指针作为输入。例如:
string getToken(istream* stream) {
...
}
ifstream fileStream;
getToken(&fileStream);
流类是专门为使这样的操作成为可能而设计的。