cout对格式的控制
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <iomanip>//set有关函数的头文件
int _tmain(int argc, _TCHAR* argv[])
{
printf("%c%d%f\n\n",'a',100,123.45);
printf("%5c%5d%6.2f\n", 'a', 100, 123.45);
printf("%-5c%-5d%6.2f\n",'a',100,123.45);//加-为左对齐,不加默认为右对齐
cout << "=============================================================" << endl;
cout<< setw(5) << 'a' << setw(5) << 100 << setw(6) << 123.45 << endl;
cout<<setiosflags(ios::left)<<setw(5)<<'a'<<setw(5)<<100<<setw(6)<<123.45<<endl;
cout << setprecision(4) << 123.45477897 << endl;
cout <<setiosflags(ios::fixed) << setprecision(3) << 123.4547 << endl;
cout << setiosflags(ios::right) << setw(5) << 'a' << endl;
//1.cout 默认输出六位有效数据
//2.setw(x) 为控制域宽的函数 x为长度
//3.setprecision(x) 可以设置有效位数
//4.setiosflags(ios:: ) 类型函数为范围性函数 如果此处运用了这个函数
//则从此处开始之后的都满足这个条件 除非重新定义条件
//5.setiosflags(ios::left) 可以控制左对齐 反之right控制右对齐
//6.setiosflags(ios::fixed)<<setprecision(x) 俩者连用可以设置小数点右面的位数有x位
cout << "=============================================================" << endl;
cout<<hex<<15<<endl; //以十六进制打印(%x)
cout<<oct<<15<<endl; //以八进制打印(%o)
cout<<dec<<15<<endl; //以十进制打印(默认)
cout << setbase(10) << 15 << endl;
//setbase函数只可以输出 8 10 16进制的数 参数如果填其他数 默认输出10进制数
cout << "=============================================================" << endl;
cout << setw(2) <<setfill('0')<< 3 << ":" << setw(2) << 5 << endl;
//setfill() 的参数为字符型,可以将域宽内空余的地方填入想要的值
//而且为范围性的 只需要在前面填一次后面都满足
return 0;
}