解析cout,cerr,clog

clog和cerr主要用于错误输出。

  • cout 写入标准输出流 stdout,有缓冲
  • cerr 写入标准错误流 stderr,无缓冲
  • clog 写入标准错误流 stderr,有缓冲

std::endl的含义

常常有 std::cout<<"test"<<std::endl,这是把test先放到标准输出流,cout会对内容进行缓冲,不会立即输出到显示器.有两种方法立即显示:加flush或endl,后者还要换行,这是在缓冲区不满时刷新.有时不加这两个关键字也能显示,是因为缓冲区满了或者长时间未输入.

precision

1
2
3
cout.precision(3);
cout<<123.567890<<endl;  // 124
cout<<scientific<<123.567890<<endl; // 1.236e+02

precision是控制输出浮点数的精度,3表示四舍五入后得到3个有效数字.精度数字超出数字个数时,还按原来数字.

scientific表示科学计数法表示,此时精度数字是小数点位数