iostream组成
发布网友
发布时间:2024-10-04 10:33
我来回答
共1个回答
热心网友
时间:2024-10-31 05:16
iostream库的基础构建在类模板的层次结构之上,这些类模板以一种类型无关的方式提供库的核心功能。基本类模板包括两个参数:字符类型(charT)用于决定处理元素的种类,特性参数则为特定元素类型提供额外特性。
类模板的层级结构中,每个类模板前面会加上前缀"basic_",如处理输入的类模板basic_istream,处理文件的类模板basic_fstream等。然而,ios_base是个例外,因为它是一个类型无关的类,直接作为库的一部分,而非基于类模板。
iostream库提供两组实例,一组是基于单字节的,以处理char类型,如ios、istream和ofstream等,它们在iostream.h中更为常见。这些类的名称和关系如右图所示:面向单字节类的名称和关系。[1]而对于宽字节(wchar_t类型)的实例,如wios、wistream和wofstream,命名规则与单字节的相同,只是在类名前加上前缀"w"。
iostream.h头文件定义了一系列在标准输入输出设备上操作的对象,分为单字节和宽字节两种,如cin、cout、cerr、clog和它们的宽字符对应物wcin、wcout、wcerr、wclog。库中的类通常不使用基本类型作为成员原型,而是根据实例特性定义相应的类型,如streampos、streamoff和streamsize分别代表位置、偏移和大小。此外,还有一些操纵符,如endl、hex和scientific,它们配合输入输出运算符一起操作流,调整流的属性和格式设置。[1]