输入输出流函数(模板)
#include<iostream> #include<iomanip> using namespace std; int main() { cout << setiosflags(ios::left|ios::showpoint); //设左对齐 cout.precision(5); //设置除小数点外有五位有效数字 cout << 123.456789 << endl; cout.width(10); //设置显示域宽 10 cout.fill('*'); // 在显示区域空白处用*填充 cout << resetiosflags(ios::left); //清除状态左对齐 cout << setiosflags(ios::right); //设置右对齐 cout << 123.456789<<endl; cout << setiosflags(ios::left|ios::fixed); //设置左对齐,以固定小数位显示 cout.precision(3); //设置实数显示三位小数 cout << 999.1234457 << endl; cout << resetiosflags(ios::left|ios::fixed); //清除状态左对齐和定点格式 cout << setiosflags(ios::left|ios::scientific); //设置左对齐以科学技术法显示 cout.precision(3); 设置保留三位小数 cout << 123.45678 << endl; return 0; }
运行结果:
exbot@ubuntu:~/wangqinghe/C++/time$ ./cout
123.46
****123.46
999.123
1.235e+02
cout.self和setiosflags一样,cout.precision和setprecision一样,cout.unself和resetiosflags一样。
setiosflags(ios::fixed) |
固定的浮点显示 |
setiosflags(ios:: scientific) |
指数表示 |
setiosflags(ios:: left) |
左对齐 |
setiosflags(ios:: right) |
右对齐 |
setiosflags(ios:: skipws) |
忽略前导空白 |
setiosflags(ios:: uppercase) |
16进制大写输出 |
setiosflags(ios:: lowercase) |
16进制小写输出 |
setiosflags(ios:: showpoint) |
强制显示小数点 |
setiosflags(ios:: showpos) |
强制显示符号 |
cout.self常见的标示:
标志 |
功能 |
boolalpha |
可以使用单纯“true”和“false”来进行输入/输出的布尔值 |
oct |
用八进制格式显示数值 |
dec |
用十进制格式显示数值 |
hex |
用十六进制格式显示数值 |
left |
输出调整为左对齐 |
right |
输出调整为右对齐 |
scientific |
用科学记数法显示浮点数 |
fixed |
用正常计数方法显示浮点数(与科学记数法相对应) |
showpoint |
显示小数点和额外的零,即使不需要 |
showbase |
输出时显示所有数值的基数 |
showpos |
在非负数值前面显示“+” |
skipws |
当一个流进行读取时,跳过空白字符(space,tabs,newlines) |
unitbuf |
在每次插入以后,清空缓冲区 |
internal |
将填充字符回到符号和数值之间 |
uppercase |
以大写的形式显示科学记数法中的“e”和十六进制格式的“x” |
iostream中定义的操作符:
操作符 |
描述 |
resetiosflag(long f) |
关闭被指定为f的标识 |
setbase(int base) |
设置数值的基本数为base |
setfill(int ch) |
设置 填充字符为ch |
setiosflags(long f) |
启用指定为f的标示 |
setprecision(int p) |
设置数值的精度(四色五入) |
serw(int w) |
设置域宽度为w |