通常情况下,C++程序中使用cin输入流实现数据的输入,用cout输出流实现数据的输出。除此之外,C++还提供有适用于特定场景的输入输出流,比如cerr、clog等。
C++输入输出流本质上就是已经定义好的类对象,之所以称它们为“流”,C++开发者认为数据传输(包含输入和输出)的过程像水一样,从一个地方流到另一个地方,所以称实现输入的为输入流,实现数据输出的为输出流。
作为类对象,C++输入流和输出流不仅可以实现基本的输入输出操作,通过类内部的成员函数,还可以满足特殊场景中的输入输出需求。
C语言的I/O解决方案也适用于C++程序,但C++并没有“偷懒”,它自己独立开发了一套全新的I/O解决方案,其中就包含大家一直使用的cin和cout。我们一直在用cin接收从键盘输入的数据,用cout向屏幕上输出数据(这两个过程又统称为“标准I/O”)。除此之外,C++也对从文件中读取数据和向文件中写入数据做了支持(统称为“文件I/O”)。
本质上来说,C++的这套I/O解决方案就是一个包含很多类的类库(作为C+