c语言的标准输入输出库是stdio.h 是一个函数库而不是类库。
其中包括了我们最常使用的scanf printf 都是一些独立的全局函数,因为C语言是不支持类的。
c++的标准输入输出库iostream 是一个类库,以类的形式组织,使用该库中的类要先引用命名空间:using namespace std;
最常使用的是cin和cout,这两个都是对象,cin是istream类的对象,cout是ostream类的对象,而输入的cin>>与输出时的cout<<中的左移<<与右移>>分别是istream类与ostream类的操作符重载。
iostream库里面创建了3个标准流对象:
1 cin 表示标准输入的istream对象,cin可以使我们从设备读取数据。
2 cout 表示标准输出的ostream对象,cout可以使我们向设备写入数据。
3 cerr 表示标准错误的ostream对象,cerr是导出程序错误消息的地方,只能向屏幕设备写数据。
标准的流对象都有默认的设备:
cout << data; cout默认的设备是显示器缓冲区。
cin >> data; cin默认的设备是键盘缓冲区。
iostream库由以下几个库组成:fstream, iomainip, ios, iosfwd, iostream, istream, ostream, sstream, streambuf, strstream。
istream用来访问操作系统的输入流,ostream访问操作系统的输出流,iostream同时继承了这两个类。
在ostream类中,重载了许多的左移<<操作符,对每种基本数据类型都做了重载,比如
&ostream operator<<(ostream &temp, int source);
&ostream operator<<(ostream &temp, char source);
&ostream operator<<(ostream &temp, char* source);
由于以上重载返回的数据类型都是ostream的引用,ostream又可以作为左值,所以可以实现cout<<"abc"<<endl<<123;
同样在istream类中,也重载了许多右移>>操作符,对每种基本数据类型都做了重载,比如
&istream operator>>(istream &temp,int source);
&istream operator>>(istream &temp,char source);
以上是终端标准输入输出设备的输入输出,也就是一般pc机的键盘和显示器的输入输出。