类型:不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算.
cin: istream类型的对象,也称为标准输入
cout: ostream类型的对象,也称为标准输出
cerr: ostream类型的对象,用于输出警告和错误信息
clog: ostream类型的对象,用来输出程序运行时的一般性信息
表达式: 产生一个计算结果,由一个活多个运算对象和一个运算符组成(std::cout << "hello world")
std::endl: 称为操纵符的特殊值,用于刷新缓冲区.
杂谈1:
对于cin,cout,cerr和clog,我们需要把它们当做一个数据流来对待.在UNIX系统中有著名的重定向,对于数据流我们也可以进行重定向:
std::cout << "hello world" << std::endl;我们将字符串"hello world"重定向到std::out中去.它们返回的依旧是:std::cout.
#include <iostream> int main() { std::cout << "hello world" << std::endl; std::cout << std::cout << std::endl; return 0; }解释器输出:
lgtdeMacBook-Pro:~ lgt$ g++ -o test test.cpp lgtdeMacBook-Pro:~ lgt$ ./test hello world 1其中,类似UNIX中:0代表标准输入,1代表标准输出,2代表标准错误. 但是这里返回1并非代表"标准输出".
假设我们编写:std::cout << (std::cout + 2) << std::endl或者std::cout << (std::fin + 2) << std::endl,都将输出3.
所以1可能代表的仅仅是:一个状态(代表可以继续输出或者输入)
代码地址:
https://github.com/leicj/C-Primer/tree/master/chapter1