#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?

Posted

技术标签:

【中文标题】#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?【英文标题】:#include<iostream.h> works well in turboc++ but not in Visual studio. why?#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为什么? 【发布时间】:2015-02-22 11:19:40 【问题描述】:

我正在使用 turboc++ 4.0 和 Visual Studio 2013。我刚开始学习编程。当我写代码时。

#include<iostream.h>
#include<conio.h>
int main()

cout<<"hello!";
getch();
return 0;

它在turbo中运行良好,但是visual stdio显示错误

致命错误 C1083:无法打开包含文件:'iostream.h':没有这样的文件或目录。

当我使用时

using namespace std;

它显示另一个关于使用 getch(); 的错误。

每个编译器都有自己的语法吗?

【问题讨论】:

Why can't g++ find iostream.h?的可能重复 【参考方案1】:

“每个编译器都有自己的语法吗?”

不,每个编译器都需要实现一个标准。 Turbo-C++ 是在任何标准建立之前制作的,只是目前唯一没有实现它们的编译器。

编写程序的标准兼容方式如下:

#include <iostream>

int main() 
    std::cout<<"hello!" << std::endl;
    char dummy;
    std::cin >> dummy;


注意:你不应该使用using namespace std;,而是在需要的时候显式放置std::范围,或者使用using std::cout cout;等。

【讨论】:

该注释在两个方面是非常糟糕的建议:(1)我们的语言功能可供我们酌情使用,using namespace std; 通常是合适的,其中一种合适的情况是制作预标准代码可与现代编译器一起使用,并且 (2) 它给人的印象是,这种不要思考,只是盲目地遵循机械规则的方法是有用且实用的。它不是。盲目地遵循机械规则的最终结果是质量非常低,代码复杂,时间浪费很多。 特别是,在目前的情况下,用std:: 限定所有相关标识符的工作可能会令人望而却步。所以这确实是一个非常糟糕的建议。【参考方案2】:

Turbo C++ 起源于 1990 年代中期或早期,在 C++ 标准化之前。

当时 C++ 的有效标准是 ARM,即 Bjarne Stroustrup 和 Margaret Ellis (IIRC) 编写的 Annotated Reference Manual,它使用了&lt;iostream.h&gt;

随着 1998 年的第一次标准化,&lt;iostream.h&gt; 被删除,取而代之的是 &lt;iostream&gt;。标准标头将cincout 放在命名空间std 中,因此您不能只更改标头名称。不能保证,但您也许可以通过编写代码来使您的代码工作

#include <iostream>
using namespace std;

【讨论】:

以上是关于#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?

能给我介绍一下C++中各种头文件的作用吗(比如说WINDOWS.H,IOSTREAM.H)?

如何编写简单的游戏程序?

linux没有iostream.h头文件

fstream.h 和 iostream.h 与 VS2010

vc6转vs2010错误