关于:“iostream” 与 <iostream.h>

DEV C++中:
在这里插入图片描述
VC6.0中却是对的:
在这里插入图片描述
在DEV中,我将预处理部分改为
#include “iostream”
using namespace std;

编译通过了。

经过搜索以下的解释较为合理:

  1. *iostream.h-非标准库: iostream.h头文件不需要声明空间直接可以使用cin和cout的关键词
  2. iostream-标准库: iostream的方法则需要空间指定以划分,所以需要声明指定其空间。*

摘:
“ --#include<iostream.h> 非标准输入输出流, 这个写法是以前C语言的写法,上个世纪八九十年代的书中一般采用这种写法,现在已经不适用了。

由于:iostream.h时代没有名词空间,即所有库函数包括头文件iostream.h都声明在全局域。为了体现结构层次, 避免名字定义冲突, c++标准委员会 特别引入了“名字空间的定义”,即namespace。 引入了名词空间这一概念,并把所有库函数声明由全局域改到了名词空间std。

因为iostream声明在std中,故而要加上这句。 很多编译器都同时支持这两种头文件形式(我刚刚尝试的DEV-c++不兼容,VC6.0兼容)。

现在还是使用标准头文件吧。至于为什么不废除非标准头文件,大概是为了兼容以前的代码。

在标准c++中,所有库函数都没有.h后缀了,如果是以前c语言的库函数,则通常去掉后缀,并在开头加上一个c。
如:c++的string.h变为string,c语言的stdio.h,变为cstdio,c语言的string.h变为cstring等等 ”

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐