c++ cout格式化
一:修改显示时使用的计数系统
控制整数以什么进制显示
1.十进制 cout<<dec
2.十六进制cout<<hex
3.八进制cout<<oct
二:调整字段宽度(默认右对齐)
int width():返回字段宽度的当前格式;
int width(int i):将宽度设置为i个空格,并返回以前的字段宽度值
注意:width()方法只影响将显示的下一个项目,然后字段宽度将恢复到默认值
三:填充字段
cout.full('*');
设置一直有效直到新的设置
四:设置浮点数的显示精度
c++的默认精度为6位(末尾0不显示)
方法:cout.precision(i);
设置一直有效直到新的设置
五:打印末尾的0和小数点
方法:cout.setf(ios_base::showpoint);
六:再谈setf()
第一个原型:fmtflags setf(fmtflahs);
ios_base::boolalpha ; 输入和输出bool值,可以为true和false ios_base::showbase; 对于输出,使用c++基数前缀(0,0x) ios_base::showpoint; 显示末尾小数点 ios_base::uppercase; 对于16进制输出,使用大写字母,E表示法 ios_base::showpos; 在正数前加上+
第二个原型:fmtfalgs setf(fmtflags,fmtflags);
方法:设置由多位控制的格式选项,第一个参数和上一个一样,第二个参数指出要清除第一个参数的哪些位
第二个参数 第二个参数 含义 ios_base::basefield ios_base::dec 使用基数10 ios_base::basefield ios_base::oct 使用基数8 ios_base::basefield ios_base::hex 使用基数16 ios_base::floatfield ios_base::fixed 使用定点计数法 ios_base::floatfield ios_base::scientific 使用科学计数法 ios_base::sdjustfield ios_base::left 使用左对齐 ios_base::sdjustfield ios_base::right 用右对齐 ios_base::sdjustfield ios_base::internal 符号或基数前缀左对齐,值右对齐
如何恢复以前的默认:
ios_base::fmtflags old=cout.setf(ios_base::left,ios_base::adjustfield);
cout.setf(old,ios_base::adjustfield);
清除设置
cout.unsetf(fmtflags mask);
七:标准控制符
cout<<left<<fixed;
八:iomanip头文件
setprecision() 设置精度
setfill() 填充字段
setw() 字段宽度
他们都接受参数