| std::ios_base::常见标志 | 使用意义 |
|---|
| boolalpha | 可以使用单词"true"和"false"进行输入或者输出布尔值。 |
| oct | 用八进制格式显示数值。(与ios::basefield配合使用) |
| dec | 用十进制格式显示数值。(与ios::basefield配合使用) |
| hex | 用十六进制格式表示数值。(与ios::basefield配合使用) |
| left | 输出调整为左对齐。(与ios::adjustfield配合使用) |
| right | 输出调整为右对齐。(与ios::adjustfield配合使用) |
| scientific | 用科学计数法显示浮点数。(与ios::floatfield配合使用) |
| fixed | 用正常的记数方法显示浮点数(与科学计数法对应)(与ios::floatfield配合使用) |
| showbase | 输出时显示所有数值的基数。 |
| showpos | 在非负数值前面显示正号。 |
| unitbuf | 每次插入以后,清空缓冲区。 |
| uppercase | 以大写的形式显示科学计数法中的'e'和十六进制格式的'x'。 |
#include
#include
int main()
{
bool isFunc = false;
std::cout.setf(std::ios_base::boolalpha);
std::cout << isFunc << std::endl;
std::cout.unsetf(std::ios_base::boolalpha);
std::cout << isFunc << std::endl;
int num1 = 34;
std::cout.setf(std::ios_base::oct, std::ios_base::basefield);
std::cout << num1 << std::endl;
std::cout.unsetf(std::ios_base::oct);
std::cout << num1 << std::endl;
std::cout.setf(std::ios_base::dec, std::ios_base::basefield);
std::cout << num1 << std::endl;
std::cout.unsetf(std::ios_base::dec);
std::cout << num1 << std::endl;
std::cout.setf(std::ios_base::hex, std::ios_base::basefield);
std::cout << num1 << std::endl;
std::cout.unsetf(std::ios_base::hex);
std::cout << num1 << std::endl;
std::cout.setf(std::ios_base::left);
for (int i = 1; i <= 100; i *= 10)
{
std::cout.width(5);
std::cout << i << ":";
std::cout.width(8);
std::cout << i * i << std::endl;
}
std::cout.unsetf(std::ios_base::left);
std::cout.setf(std::ios_base::right);
for (int i = 1; i <= 100; i *= 10)
{
std::cout.width(5);
std::cout << i << ":";
std::cout.width(8);
std::cout << i * i << std::endl;
}
std::cout.unsetf(std::ios_base::right);
float num2 = 120.23f;
std::cout.setf(std::ios_base::scientific);
std::cout << num2 << std::endl;
std::cout.unsetf(std::ios_base::scientific);
float num3 = -2e4f;
std::cout.setf(std::ios_base::fixed);
std::cout << num3 << std::endl;
std::cout.unsetf(std::ios_base::fixed);
std::cout.setf(std::ios_base::showbase);
std::cout << num2 << " " << num3 << std::endl;
std::cout.unsetf(std::ios_base::showbase);
std::cout.precision(3);
std::cout.setf(std::ios_base::showpoint);
std::cout << num2 << " " << num3 << std::endl;
std::cout.unsetf(std::ios_base::showbase);
std::cout << std::defaultfloat;
std::cout.setf(std::ios_base::showpos);
std::cout << num2 << " " << num3 << std::endl;
std::cout.setf(std::ios_base::showpos);
std::cout.setf(std::ios_base::unitbuf);
std::cout.unsetf(std::ios_base::unitbuf);
return 0;
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
false
0
42
34
34
34
22
34
1 :1
10 :100
100 :10000
1: 1
10: 100
100: 10000
1.202300e+02
-20000.000000
120.23 -20000
120. -2.00e+04
+120. -2.00e+04
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20