cout 的种种

1 头文件

iostream 就不用说了,重要的是iomanip(io 的manipulate)
1. 整型 输出进制(默认十进制)
八进制,十进制,十六进制

//八进制.....
int a;
cin>>oct>>a;
cout<<oct<<a;
//效果等同
printf("%o",a);
//十六进制
cin>>hex>>a;
cout<<hex<<a;
scanf("%x",&a);
printf("%x",a);

cout<<dec;//默认的都是全局设置,所以最好在每次输出之后设为默认
2 格式控制

左对齐,右对齐
setiosflag(ios:: left),setiosflag(ios:: right);//默认右对齐,全局设置

 cout<<setw(10)<<setiosflags(ios::left)<<a<<endl;

固定输出小数位数,setiosflag(ios::fixed)与setprecision(n)连用.全局设置

  cout<<setiosflags(ios::fixed)<<setprecision(5)<<a<<endl;
 // 相当于
 printf("%.5f\n",a);

按指定位数输出

#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
int main(void)
{
    for(int i = 0;i < 5; ++i)
    printf("%.*f\n",i,pi);
    for(int i = 0;i < 5; ++i)
        cout<<setiosflags(ios::fixed)<<setprecision(i)<<pi<<endl;
    return 0;
}

输出
3
3.1
3.14
3.142
3.1416
3
3.1
3.14
3.142
3.1416

3. 控制输出长度,有效位数,填充字符

控制输出长度 setw() w是(width),这个只作用一次,如果输出的字段大于给定的长度,不起作用
有效位数 setprecision(), 这个是全局的,默认是六位//对浮点数作用
填充字符 在setw() 中如果位数不够,用这个设定的字符来补充,默认是空格
使用方法

int a = 100;
cout<<setw(10)<<a<<endl;//控制输出的长度,这个
cout<<setfill('*')<<setw(10)<<a<<endl;
cout<<seprecison(2)<<a<<endl;


更多请查表
表格