#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,它使用了<iostream.h>
。
随着 1998 年的第一次标准化,<iostream.h>
被删除,取而代之的是 <iostream>
。标准标头将cin
和cout
放在命名空间std
中,因此您不能只更改标头名称。不能保证,但您也许可以通过编写代码来使您的代码工作
#include <iostream>
using namespace std;
【讨论】:
以上是关于#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?的主要内容,如果未能解决你的问题,请参考以下文章
#include<iostream.h> 在 turboc++ 中效果很好,但在 Visual Studio 中效果不佳。为啥?
能给我介绍一下C++中各种头文件的作用吗(比如说WINDOWS.H,IOSTREAM.H)?