输入输出是每一种编程语言必不可少的部分,c++也不例外,下面我们就来说明c++的标准输入输出的前世今生。
1.首先说一下iostream和iostream.h的区别
#include<iostream> // 这个就是1998年标准化以后的标准头文件,使用时需要使用声明命名空间std
#include<iostream.h> // 这个就是标准化以前的头文件,里面的函数以及类都是全局的
iostream是现在C++中规定的标准,目的在于使C++代码用于移植和混合嵌入时不受扩展名.h的限制,避免因为.h而造成的额外的处理和修改。
iostream包含的基本功能和对应的iostream.h相同,iostream中定义的内容都在命名空间std中,而iostream.h是为了对c语言进行兼容,所以将标准输入输出功能都定义在全局空间中,他们的使用方法也是不一样的,另外推荐直接使用iostream,毕竟iostream.h是很多年前的老物件了,标准c++中已经明确不适用了,以后有可能被淘汰。
注意:在标准化的过程中,库中有些部分的细节被修改了,所以旧头文件和新头文件中的实体不一定完全对应
这里看一下他们使用上的不同:
#include<iostream.h>
或者是
#include<iostream>
using namespace std;
可见凡是要使用标准c++输入输出,都需要加上using namespace std。
2.输入输出流关系梳理
要弄清楚c++的输入输出流,必须要从源头找起,从安装文件里面找出输入输出流相关的头文件,大概列一下,相关头文件有以下这些:
- istream,可以看到istream头文件是声明了basic_istream模板类
- ostream,ostream头文件是声明了basic_os