#include<iostream>和#include<iostream.h>的区别

本文详细介绍了在C++中使用&lt;iostream&gt;与&lt;iostream.h&gt;的区别,包括命名空间的使用、功能性和接口上的差异,并探讨了它们在C与C++模式下的不同应用。
区别在于:如果用了<iostream>,则一定要引入命名空间,即"using  namespace  std;如果用了<iostream.h>,则不能引入命名空间,否则会引起编译错误,提示找不到命名空间.
例程如下: 
  //情况一:使用<iostream>和命名空间 
  #include  <iostream> 
  using  namespace  std; 
  int main() 
  { 
     cout<<"<iostream>  need  to  use  namespace  std!\n"; 
     return  0; 
  } 
  输出: 
     <iostream>  need  to  use  namespace  std! 
      Press  any  key  to  continue 
   
  //情况二:使用<iostream.h>,不引入命名空间 
  #include  <iostream.h> 
  //using  namespace  std; 
  int  main() 
  { 
      cout<<"<iostream>  need  to  use  namespace  std!\n"; 
      return  0; 
  } 
  输出: 
    <iostream>  need  to  use  namespace  std! 
     Press  any  key  to  continue 
   
  //情况三:使用<iostream.h>,引入命名空间,这时候编译出错 
  #include  <iostream.h> 
  using  namespace  std; 
  int  main() 
  { 
     cout<<"<iostream>  need  to  use  namespace  std!\n"; 
     return  0; 
  } 
  编译错误信息: 
  error  C2871:  'std'  :  does  not  exist  or  is  not  a  namespace 
   从功能性的角度来讲,<iostream>包含了一系列模板化的I/O类,相反地<iostream.h>只仅仅是支持字符流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,<iostream>和<iostream.h>在接口和执行上都是不同的。最后,<iostream>的各组成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。
严格来说,不带h的用法是纯C++的标准用法,主要是配合STL库使用的。如果你的程序要使用C库,那么就要带.h。因此第一种和第二种写法,最大的区别在于你使用C模式还是纯C++模式。还有比如<string.h>是旧的C头文件,对应的是基于char*的字符串处理函数;<string>是包装了std的C++头文件,对应的是新的strng类;<cstring>是对应旧的C头文件的std版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值