词条 | iostream.h |
释义 | iostream的含义iostream.h是input output stream的简写,意思为标准的输入输出流头文件。它包含: (1)cin>>"要输入的内容" (2)cout<<"要输出的内容" 这两个输入输出的方法需要#include<iostream.h>来声明头文件。 组成基本类模板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)库的一部分,头文件<iostream(.h)>声明了一些用来在标准输入输出设备上进行输入输出操作的对象。 这些对象分为两组:面向单字节的,即常见的cin、cout、cerr和clog;其面向宽字节的对应物,声明为wcin、wcout、wcerr和wclog。 类型iostream(.h)库中的类很少对其成员的原型使用基本类型,而是通常使用根据其实例的特性定义的类型。对默认的char和wchar_t型的实例,类型streampos、streamoff和streamsize分别用以表示位置、偏移和大小。 操纵符操纵符是用来与对流对象进行操作的插入(<<)和提取(>>)运算符一同使用的全局函数。它们通常变更流的属性和格式设置。endl、hex和scientific是一些操纵符的例子。 与iostream的比较区别iostream.h与iostream是不同的。 #include<iostream.h>是在旧的标准C++中使用。在新标准中,用#include<iostream>。iostream的意思是输入输出流。#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。还要注意的是:在VC编程时要添加: using namespace std; 其原因是:后缀为.h的头文件C++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。 关系<string.h>是旧的C头文件,对应的是基于char*的字符串处理函数;<string>是包装了std的C++头文件,对应的是新的strng类;<cstring>是对应旧的C头文件的std版本。而<iostream.h>和<iostream>的关系,类似于<string.h>和<cstring>的关系,实现的功能是相同的,主要是是否使用命名空间std的区别。 使用建议如果你的编译器同时支持<iostream>和<iostream.h>,那使用#include<iostream>,得到的是置于命名空间std下的iostream库的元素;如果使用 #include<iostream.h>,得到的是置于全局空间的同样的元素。在全局空间获取元素会导致名字冲突,而设计名字空间的初衷正是用来避免这种名字冲突的发生。还有,打字时<iostream>比<iostream.h>少两个字,所以通常来说,建议使用<iostream>。 vc中iostream.h的内容/*** *iostream.h - definitions/declarations for iostream classes * * Copyright (c) 1990-1997, Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the classes, values, macros, and functions * used by the iostream classes. * [AT&T C++] * * [Public] * ****/ #if _MSC_VER > 1000 #pragma once #endif #ifdef __cplusplus #ifndef _INC_IOSTREAM #define _INC_IOSTREAM #if !defined(_WIN32) && !defined(_MAC) #error ERROR: Only Mac or Win32 targets supported! #endif #ifdef _MSC_VER // Currently, all MS C compilers for Win32 platforms default to 8 byte // alignment. #pragma pack(push,8) #include <useoldio.h> #endif // _MSC_VER /* Define _CRTIMP */ #ifndef _CRTIMP #ifdef _DLL #define _CRTIMP __declspec(dllimport) #else /* ndef _DLL */ #define _CRTIMP #endif /* _DLL */ #endif /* _CRTIMP */ typedef long streamoff, streampos; #include <ios.h> // Define ios. #include <streamb.h> // Define streambuf. #include <istream.h> // Define istream. #include <ostream.h> // Define ostream. #ifdef _MSC_VER // C4514: "unreferenced inline function has been removed" #pragma warning(disable:4514) // disable C4514 warning // #pragma warning(default:4514) // use this to reenable, if desired #endif // _MSC_VER class _CRTIMP iostream : public istream, public ostream { public: iostream(streambuf*); virtual ~iostream(); protected: iostream(); iostream(const iostream&); inline iostream& operator=(streambuf*); inline iostream& operator=(iostream&); private: iostream(ios&); iostream(istream&); iostream(ostream&); }; inline iostream& iostream::operator=(streambuf* _sb) { istream::operator=(_sb); ostream::operator=(_sb); return *this; } inline iostream& iostream::operator=(iostream& _strm) { return operator=(_strm.rdbuf()); } class _CRTIMP Iostream_init { public: Iostream_init(); Iostream_init(ios &, int =0); // treat as private ~Iostream_init(); }; // used internally // static Iostream_init __iostreaminit; // initializes cin/cout/cerr/clog #ifdef _MSC_VER // Restore previous packing #pragma pack(pop) #endif // _MSC_VER #endif // _INC_IOSTREAM #endif /* __cplusplus */ |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。