1、概念
在程序设计当中免不了要对数据进行输入输出,在C语言中我们经常使用scanf()、printf()进行输入输出操作,但是在C++中,我们使用流对象来对数据进行输入输出操作,数据流在输入源和输出目标之间充当了桥梁的作用。
根据操作的数据流对象的不同,C++流对象可以分为控制台流(iostream)、文件流(fstream)以及字符串流(sstream),上述三种类的流均继承基础流类(ios_base、ios)。
具体关系如下图所示:
2、控制台流(iostream)
为了控制台程序输入输出的方便,C++控制台流以对象的形式提供了几个常用的流对象方便在控制台对数据流进行输入输出,分别是:cin(输入流)、cout(输出流)、cerr(不带缓存的错误输出流)、clog(带缓存的错误输出流)。
cin对象:当代码执行到cin函数时,控制台会弹出输入框,让你输入,此时当你输入完数据,敲下回车键,cin对象会从缓冲区读取数据流直到遇到第一个空白符为止。所以,使用cin读取数据会跳过空白符(例如,空格,tab、制表符等等),如果想读取这些空白符的话需要使用getchar()函数。但是如果想要读取一行带有空白符的数据怎么办呢?cin对象有一个getline函数:
cin.getline(char s[], int nLen