输入/输出格式控制
内部成员函数
流成员函数 | 与之作用相同的控制符 | 作用 |
precision(n) | setprecision(n) | 设置实数的精度为n位 |
width(n) | setw(n) | 设置字段宽度为n位 |
fill(c) | setfill(c) | 设置填充宇符c |
setf() | setiosflags() | 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中的内容相同 |
unsetf() | resetioflags() | 终止已设置的输出格式状态,在括号中应指定内容 |
流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。
格式标志 | 作用 |
ios::left | 输出数据在本域宽范围内向左对齐 |
ios::right | 输出数据在本域宽范围内向右对齐 |
ios::internal | 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充 |
ios::dec | 设置整数的基数为10 |
ios::oct | 设置整数的基数为8 |
ios::hex | 设置整数的基数为16 |
ios::showbase | 强制输出整数的基数(八进制数以0打头,十六进制数以0x打头) |
ios::showpoint | 强制输出浮点数的小点和尾数0 |
ios::uppercase | 在以科学记数法格式E和以十六进制输出字母时以大写表示 |
ios::showpos | 对正数显示“+”号 |
ios::scientific | 浮点数以科学记数法格式输出 |
ios::fixed | 浮点数以定点格式(小数形式)输出 |
ios::unitbuf | 每次输出之后刷新所有的流 |
ios::stdio | 每次输出之后清除stdout, stderr |
注意点:
1、第一次setf设置的格式对输出流一直起作用,如果后面没有清楚设置的格式,后面在用setf设置的输入/输出格式都是无效的。
2、hex、otc、dec都是针对的整形数据。
3、float类型默认的有效十进制位为6位,小数部分的十进制位宽最大为6位,多余部分四舍五入。
4、cin.get()可以清空缓冲区。
5、在c++中,使用string定义字符串就不会出现缓冲区的问题:getline(cin,string)
put函数专用于输出单个字符的成员函数put couy.put(ch);