如何将ifstream转换为istream

时间:2017-10-18 02:17:00

标签: c++ casting ifstream istream

我有什么办法可以将ifstream转换为istream吗?我有一个名为getToken(istream* br)的函数,它接受istream作为参数,但在我的main()中,我使用ifstream来读取文件,我必须使用相同{ {1}}致电ifstream。我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:5)

正如评论中所提到的,你不需要做任何奇特的事情。 std::ifstream类型继承自std::istream,因此任何带istream*的函数都可以将指向ifstream的指针作为输入。例如:

string getToken(istream* stream) {
    ...
}

ifstream fileStream;
getToken(&fileStream);

流类是专门为使这样的操作成为可能而设计的。