您当前的位置: 首页 >  ios

顺其自然~

暂无认证

  • 2浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

iostream

顺其自然~ 发布时间:2020-11-13 13:24:26 ,浏览量:2

iostream是指iostream库。iostream的意思是输入输出流,直接点说就是in(输入) out(输出) stream(流),取in、out的首字母与stream合成。

组成

iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流。流是指要从某种 IO 设备上读出或写入的字符序列。术语“流”试图说明字符是随着时间顺序生成或消耗的。

标准库定义了 4 个 IO 对象。处理输入时使用命名为 cin(读作 see-in)的 istream 类型对象。这个对象也称为标准输入。处理输出时使用命名为 cout(读作 see-out)的 ostream 类型对象,这个对象也称为标准输出。标准库还定义了另外两个 ostream 对象,分别命名为 cerr 和 clog(分别读作“see-err”和“see-log”)。cerr 对象又叫作标准错误,通常用来输出警告和错误信息给程序的使用者。而 clog 对象用于产生程序执行的一般信息。

基本类模板

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

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

这个类层级结构中的类模板和它们的字符类型的实例相比,名字前面多了前缀basic_。例如,istream由之实例化而来的类模板名为basic_istream,fstream由之实例化而来的类模板名为basic_fstream,等等。唯一的例外是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是一些操纵符的例子。

缓冲区介绍

输入:从磁盘上读取大量信息,将这些信息存储在缓冲区中,然后每次从缓冲区读取一个字节,到达缓冲区尾部,再从磁盘上读取另一块数据。

   但是键盘每次输入一个字符时可以用不缓冲区,但是用缓冲区输入可以让程序没有传给程序之前返回并改正,c++通常是用户按下回车键刷新缓冲区,

输出:程序首先填满缓冲区,然后把整块数据给磁盘,并清空缓冲区,以备下一批输入。

   对于输出屏幕,输出换行符时刷新缓冲区(也可能是其他:当输入语句到达时,他刷新缓冲区中当前所有输出)

刷新缓冲:用cout将字节发送给标准输出时由于ostream类对cout对象输出进行缓冲,输出并不会直接发送到目标地址,而是在缓冲区中,直到缓冲区填满,然后flush缓冲区,把内容发送出去并且清空缓冲,缓冲区通常为512byte或其整数倍。

  对于屏幕来说,程序不必等到缓冲区填满,1.将换行符发送到缓冲区时刷新缓冲区;2.输入即将发生时刷新缓冲区。

flush(cout);
cout            
关注
打赏
1662339380
查看更多评论
0.0756s