iostream.h

更新时间:2024-08-26 17:07

标准的输入输出流头文件。用来声明一些用来在标准输入输出设备上进行输入输出操作的对象。

含义

iostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含:

这两个输入输出的方法需要#include头文件来声明。

组成

基本类模板

iostream(.h)库的基础是类模板的层级结构。类模板以一种与类型无关的方式,提供了这个库的大部分功能。

基本类模板是一个类模板的集合,其中每个类模板有两个参数:字符类型(charT)参数决定处理的元素类型,而特性参数对每个特定的元素类型提供一些额外的特征。

这个类层级结构中的类模板和它们的字符类型的实例相比,名字前面多了前缀basic_。例如,istream由之实例化而来的类模板名为basic_istream,fstream由之实例化而来的类模板名为basic_istream,等等。唯一的例外是ios_base,因为它本身就是类型无关的,所以它并不基于任何类模板,而是一个正规类。

类模板实例

iostream(.h)库中集成了两组标准的整个iostream类模板层级结构的实例:一组是面向单字节的,处理char类型的元素;另一组是面向宽字节的,处理wchar_t类型的元素。

面向单字节(char型)的实例可能是iostream(.h)库更为人所知的一部分。ios、istream和ofstream等类都是面向单字节的。右图是面向单字节的所有类的名称和关系。

面向宽字节(wchar_t型)的实例的命名规则与面向单字节的实例相同,但所有类和对象名称前有前缀w,例如wios、wistream和wofstream。

标准对象

作为iostream(.h)库的一部分,头文件声明了一些用来在标准输入输出设备上进行输入输出操作的对象。

这些对象分为两组:面向单字节的,即常见的cin、cout、cerr和clog;其面向宽字节的对应物,声明为wcin、wcout、wcerr和wclog。

类型

iostream(.h)库中的类很少对其成员的原型使用基本类型,而是通常使用根据其实例的特性定义的类型。对默认的char和wchar_t型的实例,类型streampos、streamoff和streamsize分别用以表示位置、偏移和大小。

操纵符

操纵符是用来与对流对象进行操作的插入(<<)和提取(>>)运算符一同使用的全局函数。它们通常变更流的属性和格式设置。endl、hex和scientific是一些操纵符的例子。

比较

区别

iostream.h与iostream是不同的。

#include是在旧的标准C++中使用。在新标准中,用#include。iostream的意思是输入输出流。#include是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。还要注意的是:在VC编程时要添加:

using namespace std;

其原因是:后缀为.h的头文件C++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使用的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。

关系

是旧的C头文件,对应的是基于char*的字符串处理函数;是包装了std的C++头文件,对应的是新的string类;是对应旧的C头文件的std版本。而的关系,类似于的关系,实现的功能是相同的,主要是是否使用命名空间std的区别。

使用建议

如果你的编译器同时支持,那使用#include,得到的是置于命名空间std下的iostream库的元素;如果使用 #include,得到的是置于全局空间的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。还有,打字时少两个字,所以通常来说,建议使用

内容

代码

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}