NotePublic/Software/Development/Language/Cpp/std_cout_格式化输出.md

36 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# std cout 格式化输出
```cpp
uint8_t tmp = 12;
cout<<hex<<setw(2)<<setfill('0')<<(int)tmp<<endl;
```
| 流操纵算子 | 作 用 |
|---------------------|-------------------|
| *dec | 以十进制形式输出整数 |
| hex | 以十六进制形式输出整数 |
| oct | 以八进制形式输出整数 |
| fixed | 以普通小数形式输出浮点数 |
| scientific | 以科学计数法形式输出浮点数 |
| left | 左对齐,即在宽度不足时将填充字符添加到右边 |
| *right | 右对齐,即在宽度不足时将填充字符添加到左边 |
| setbase(b) | 设置输出整数时的进制b=8、10 或 16 |
| setw(w) | 指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符 |
| setfill(c) | 在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充) |
| setprecision(n) | 设置输出浮点数的精度为 n。在使用非 fixed 且非 scientific 方式输出的情况下n 即为有效数字最多的位数,如果有效数字位数超过 n则小数部分四舍五人 或自动变为科学计 数法输出并保留一共 n 位有效数字。在使用 fixed 方式和 scientific 方式输出的情况下n 是小数点后面应保留的位数。 |
| setiosflags(flag) |将某个输出格式标志置为 1 |
| resetiosflags(flag) | 将某个输出格式标志置为 0 |
| boolapha | 把 true 和 false 输出为字符串 |
| *noboolalpha | 把 true 和 false 输出为 0、1 |
| showbase | 输出表示数值的进制的前缀 |
| *noshowbase | 不输出表示数值的进制.的前缀 |
| showpoint | 总是输出小数点 |
| *noshowpoint | 只有当小数部分存在时才显示小数点 |
| showpos | 在非负数值中显示 + |
| *noshowpos | 在非负数值中不显示 + |
| *skipws | 输入时跳过空白字符 |
| noskipws | 输入时不跳过空白字符 |
| uppercase | 十六进制数中使用 A~E。若输出前缀则前缀输出 0X科学计数法中输出 E |
| *nouppercase | 十六进制数中使用 a~e。若输出前缀则前缀输出 0x科学计数法中输出 e。 |
| internal | 数值的符号(正负号)在指定宽度内左对齐,数值右对 齐,中间由填充字符填充。 |