C++没有直接定义进行输入和输出的任何语句,输入输出是由标准库iostream提供的。iostream与C语言的stdio库不同,是用多重继承与虚拟继承实现的面向对象的层次结构。C语言没有运算符重载机制,所以stdio不可以扩充,无法让prinf()和scanf()支持对自定义对象的扩充识别,C++可以通过运算符重载机制扩充iostream库,使系统能够识别自定义类型,从而让输入输出明确的知道他们该干什么,格式是什么。
Standard Input / Output Streams Library:
iostream定义了4个IO对象,标准输入cin的istream类型的对象和标准输出cout的ostream类型的对象,另外还定义了两个ostream对象,为标准错误cerr对象和clog对象,cerr对象通常用来输出警告和错误信息给程序的使用者,而clog对象用于产生程序执行的一般信息。输出主要由重载的左移操作符“<<”来完成,输入主要由重载的右移操作符“>>”完成。一个输入/输出操作实例接受一个操作数,左操作数必须是istream/ostream对象,右操作数是要输出的值,操作符将其右操作数写到其左操作数的istream/ostream对象,输入/输出操作符返回的是其左操作数:
cout<<a<<endl;
等价于
(cout<<a)<<endl;
也可以分开来写:
cout<<a;
cout<<endl;