ostream.h:没有这样的文件或目录

Dom*_*ell 1 c c++ legacy include ostream

我正在尝试使用更新的编译器和更新的工具更新旧项目(vxWorks的新版本,但它应该无关紧要).在代码中它说:

#include <ostream.h>
Run Code Online (Sandbox Code Playgroud)

然而,我收到了大量的错误,其中大部分来自:

ostream.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我查了一下错误,很多解决方案都说将其更改为:

#include "ostream"
Run Code Online (Sandbox Code Playgroud)

这是有效的,但这是遗留代码,我宁愿不去改变所有这些.有没有办法可以在不更改代码的情况下更改这些内容?

fre*_*low 6

好吧,您可以创建一个名为ostream.h仅包含一行的文件:

#include <ostream>
Run Code Online (Sandbox Code Playgroud)

  • 使用这种方法,您还需要`using namespace std;`,因为古代标题将所有内容都放在全局命名空间中.就个人而言,我建议改为代码现代化. (3认同)
  • 关键是用适当的工具做正确的工作.c ++ 90!= c ++ 98!= c ++ 11.编译"旧代码"的最佳方法是使用"旧编译器"(或遵循"旧标准"的编译器).使用post'03编译器编译pre'98代码将始终隐藏一些潜在的灾难. (2认同)