如何将 ifstream 转换为 istream

How can I convert an ifstream to an istream

本文关键字:istream 转换 ifstream      更新时间:2023-10-16

有什么方法可以将ifstream转换为istream吗?我有一个名为 getToken(istream* br) 的函数,它接受istream作为参数,但在我main()中,我使用ifstream来读取文件,并且必须使用相同的ifstream来调用getToken。如何克服此问题?

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

string getToken(istream* stream) {
    ...
}
ifstream fileStream;
getToken(&fileStream);

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