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

转载自 零度咖啡的博客,版权归原作者所有。 
区别在于:如果用了isotream则一定要引入命名空间,即”using namespace std;如果用了iostream.h,则不能引入命名空间,否则会引起编译错误,提示找不到命名空间. 
例程如下:

 //情况一:使用<iostream>和命名空间 
  #include  <iostream> 
  using  namespace  std; 
  int main() 
  { 
     cout<<"<iostream>  need  to  use  namespace  std!\n"; 
     return  0; 
  } 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出:

     <iostream>  need  to  use  namespace  std! 
      Press  any  key  to  continue 
 
 
  • 1
  • 2
//情况二:使用<iostream.h>,不引入命名空间 
  #include  <iostream.h> 
  //using  namespace  std; 
  int  main() 
  { 
      cout<<"<iostream>  need  to  use  namespace  std!\n"; 
      return  0; 
  } 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出:

    <iostream>  need  to  use  namespace  std! 
     Press  any  key  to  continue 
 
 
  • 1
  • 2
  //情况三:使用<iostream.h>,引入命名空间,这时候编译出错 
  #include  <iostream.h> 
  using  namespace  std; 
  int  main() 
  { 
     cout<<"<iostream>  need  to  use  namespace  std!\n"; 
     return  0; 
  } 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

编译错误信息:

  error  C2871:  'std'  :  does  not  exist  or  is  not  a  namespace 
 
 
  • 1

从功能性的角度来讲,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版本。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值