C++中的I/O库

C++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理I/O的
下面简单介绍一下IO库:

  • istream(输入流)类型,提供输入操作
  • ostream(输出流),提出输出操作,跟前面的istream一样都是属于头文件iostream
  • cin 一个istream的对象,从标准输入中读取数据
  • cout 一个ostream的对象,从标准输出中写入数据
  • cerr 一个ostream的对象,通常用于输出程序错误消息,写入到标准错误中
  • >>运算符,用来从一个istream对象中读取输入数据
  • <<运算符,用来向一个ostream对象中写入输出数据
  • getline函数,从一个给定的istream读取一行数据,存入到一个指定的string中。其中只有出现换行符号的时候,输入才会停止。

默认下上面的都是关联到用户的控制台的窗口的。当然还有一些其它的操作来完成输入输出的读取的,例如按照使用对应的文件的方式来进行读取操作。文件的读取和写入也是涉及到IO的操作的。例如使用头文件fstream的方式来进行读取,其中包含有读取文件的类型方式。sstream的方式来从string中读取数据。分别对应有普通流、文件流、string流。

虽然有不同的设备和不同的字符串类型,但是其都不会影响我们要执行的IO操作,例如只需要使用 >>读取数据即可,而不需要关注读取的是哪一类的数据类型。标准库中是通过继承的方式来让我们可以忽略这些不同类型的流数据的差异。继承在类中是一个非常重要的方式。即类型 ifstream和 istringstream都是继承于istream的,因为很多的使用方法是完全相同,子类在基类的基础上进行了一些扩展操作来支持对应的需要!即cin、getline等方法都是可以直接在ifstream和istringstream中使用的。当然cout也是一样的可以直接使用。

IO对象是没有拷贝或者赋值的:即不能按照一般变量一样对应其中的进行赋值或者进行拷贝初始化。

缓冲区的知识:缓冲区的知识有点多,主要是涉及到一些错误输入和一些缓存区的状态保存的问题。这里只是举例其中刷新缓冲区的几个不同的关键字的作用!

cout << "hello!" << endl; //输出hello和一个换行,然后刷新缓冲区
cout << "hello!" << flush; //只是输出hello,刷新缓冲区
cout << "hello!" << ends; //输出hello和一个空字符,然后刷新缓冲区。

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值