【发布时间】:2011-08-16 11:54:12
【问题描述】:
在我的代码中,我传递了一个对 iostream 的引用,在这种情况下,它最终是一个文件。
有什么方法可以查明,当它被打开时,它是否被设置为 [in|out] 而不仅仅是 [in]?
【问题讨论】:
-
它真的是
iostream &吗?如果是这样,它继承自istream和ostream,因此是可写的。如果您要引用基类ios,那么您正在考虑使用 RTTI 或模板函数。 -
std::fstream f("/work/file.txt", std::ios_base::in); - f 继承 ostream 但不可写。
-
但是你为什么要这样做,除非惹恼那些想知道他们是否可以写入文件的人?