istream和ostream问题-C ++

Man*_*ang 2 c++ class input stream

我正在使用g ++和Dev-C ++这两个编译器。当我在Dev-C ++上编译程序时,它可以完美编译。但是当我尝试在g ++上进行编译时,它给了我两个错误:

在a2test.cpp包含的文件中:27:
----。h:25:错误:尚未声明“ ostream”
----。h:26:错误:尚未声明'istream'

谁能告诉我该怎么做才能解决这个问题。

谢谢

Jon*_*erg 5

确保包括fstream。另外,在ostream之前放置“ std ::”,或在某处放置“ using namespace std”。

如果您发布代码会有所帮助,因为现在我只是基于常见错误进行猜测。

我猜你忘了包括fstream,因为不同的编译器可能会使用不同的头文件,并且g ++的头文件可能带有

// iostream
#include <fstream>
Run Code Online (Sandbox Code Playgroud)

尽管Dev-C ++可能具有

// iostream
// no include for fstream in this file
Run Code Online (Sandbox Code Playgroud)

因此,您不小心导入了正确的头文件,而不是显式地导入它。

对于头文件,我忘记使用哪个站点就使用该站点。

ostream-C ++参考

看来您需要包括ostream才能获得ostream。对于istream可能是同一件事。

  • 错误适用于`istream`和`ostream`-可从&lt;istream&gt;和&lt;ostream&gt;获得,也可从&lt;iosfwd&gt;(声明)或&lt;iostream&gt;(定义)获得,没有理由具体包括“ &lt;fstream&gt;”(它包含从“ istream”和“ ostream”派生的类,因此将包括它们的定义以及其他可能不必要的代码)。 (2认同)