为什么在vs 2005中用include<iostream.h>就不行,而用include<stdio.h>就可用

什么时候用使用命名空间呢

楼主明白了以下几点,问题就搞清楚了:
1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。

2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。

3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include <iostream.h>是可以的。但到了vs2005,使用了新的C++标准库,只能用#include <iostream>。

4、名字空间里可以包含很多东西,比如函数名、标识符、数据类型等等。新的C++标准把标准库中的名字都放入了std名字空间,因此在#include <iostream>之后,还必须使用标准库的名字空间std,才能使用标准库里的类和函数,也就是必须 using namespace std;

5、对于C的标准库,例如,stdio.h,没有名字空间的概念,因此直接包含后即可使用。

6、新的C++标准库为了统一以前的C标准库,将原来c的标准库也放入了std名字空间,并把原来的C标准库去掉了.h后缀,前面加上字母“c”,例如stdio.h就变成了cstdio,使用时为#include <cstdio>,其内容和#include <stdio.h>相同,但是要额外使用名字空间std,也就是using namespace std;

7、因此,对于新的C++标准库,没有了.h形式的头文件,例如iostream,在包含了头文件以后,必须使用std名字空间才能使用库中的内容。对于C标准库,有两种使用方法,一种是用老的.h形式,例如stdio.h直接包含就可以了;另一种就是用C++的统一形式,例如cstdio,和C++标准库一样,包含了以后还要加上using namespace std;才能使用。

建议采用后面统一的形式,比如你要同时使用C和C++的库,可以这样写:
#include <cstdio>
#include <iostream>
using namespace std;
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-17
在VS2005 中不识别<iostrem.h>,因为iostream.h是很早以前的头文件了,所以在VS2005中一输入输出控制流都不用加.h了,直接用<iostream>就行了.

为什么在vs 2005中用include<iostream.h>就不行,而用include<stdio.h>...
1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include ...

include<stdio.h> 和include<iostream.h>的区别
include<stdio.h> 和include<iostream.h>区别为:来源不同、命名空间不同、移植不同。一、来源不同 1、include<stdio.h> :include<stdio.h> 是C标准库里面的函数库。2、include<iostream.h>:include<iostream.h>是C++标准库的函数库。二、命名空间不同 1、include<stdio.h> :引用include<stdio...

<iosteam.h>和<stdio.h>的区别?
第三,iostream库的类有构造函数而<stdio.h>里的函数没有,在某些涉及到静态对象初始化顺序的时候,如果可以确认不会带来隐患,用标准C库会更简单实用。iostream库的类和函数所提供的类型安全和可扩展性的价值远远超过你当初的想象,所以不要仅仅因为你用惯了<stdio.h>而舍弃它。毕竟,转换到iostream后...

#include<iostream>和#include<iostream.h>的根本区别
<iostream>的各组成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。你不能在一个程序中混淆使用这两个库。做为一种习惯,在新的代码中一般使用<iostream>,但如果你处理的是过去编写的代码,为了继承可以用继续用<iostream.h>旧保持代码的一致性。<iostream>表示你使用的是标注...

C++中include <iostream>和include <iostream.h>有什么区别。
include<stdio.h> 和include<iostream.h>区别为:来源不同、命名空间不同、移植不同。一、来源不同 1、include<stdio.h> :include<stdio.h> 是C标准库里面的函数库。2、include<iostream.h>:include<iostream.h>是C++标准库的函数库。二、命名空间不同 1、include<stdio.h> :引用include<stdio...

include "stdio.h" 和#include lt;stdio.h>的区别
stdio 是C标准库里面的函数库 对应的基本都是标准输入输出等等C语言常用库的定义 iostream是C++标准库的头定义, 对应的基本上是C++的输入输出相关库定义 开发C程序用Stdio, C++用Stdio\/iostream 都可以。C++时,推荐使用 include<iostream> using namespace std;至于哪些相关函数,很简单的,只要打开那...

在C语言中,#include<stdio.h>和 #include<string.h>有什么区别?
include <stdio.h> \/\/定义输入/输出函数 include <string.h>\/\/字符串处理 C\/C++头文件一览 C、传统 C++ include <assert.h>\/\/设定插入点 include <ctype.h> \/\/字符处理 include <errno.h> \/\/定义错误码 include <float.h> \/\/浮点数处理 include <fstream.h>  \/\/文件输入/输出 include ...

...error C1083: 无法打开包含文件:“iostream.h”: No such file or...
那就别用iostream.h,用stdio.h吧 把所有cin输入的语句换成scanf,cout换成printf

·#include <stdio.h>不写出来对程序有影响吗
当然有影响,你用到的很多方法都是这个头文件里定义好的 不写调用这些函数就不能用,就会出错 所以如果用到了里边定义的函数就必须写

把C++中的#include<iostream>换成#include <stdio.h>cin,cout换成scanf...
iostream.h和stdio.h是C++的两个头文件,里面是对于一些类,操作符,函数的定义,头文件本身应该没有好坏之分吧~~———又查了一下,最新的G++,cin已经比scanf快了,ACM如果scanf超时的话可以用G++提交一下试一下,呵呵,不过,我以后还是打算老老实实的用scanf。。cin的实时性较差,因为它使用了...

相似回答