输入输出流函数(模板)
#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 |