cout格式化输出 C++
2017-11-21 16:58
267 查看
由于class ifstream/ofstream分别为class istream/ostream派生来的,所以,下面介绍的cout输出的格式化,在文件的输出时使用方法相同。
由于使用iostream工具来设置一些格式值不太方便,为简化工作,C++在头文件iomanip中提供了一些控制符,他们能够提供流成员函数相同的功能。其成员函数与控制符的对应关系如下表格:
对成员函数和控制符的使用有下面两点说明:
1. 成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效。
2. 在用成员函数setf和控制符setiosflags设置输出格式状态后,如果想改设置为同组的另一状态,应当调用成员函数unsetf(对应于成员函数self)或resetiosflags(对应于控制符setiosflags),先终止原来设置的状态,然后再设置其他状态。
使用setf()不是进行格式的、对用户最友好的方法,C++提供了多个控制符,能够调用setf(),并自动提供正确的参数。如下表格:
例如,std::cout<<std::left<<std::fixed; 该语句意义:打开左对齐和定点选项。
由于使用iostream工具来设置一些格式值不太方便,为简化工作,C++在头文件iomanip中提供了一些控制符,他们能够提供流成员函数相同的功能。其成员函数与控制符的对应关系如下表格:
流成员函数 | 与之作用相同的控制符 | 作用 |
---|---|---|
precision(n) | setprecision(n) | 设置实数的精度为n位 |
width(n) | setw(n) | 设置字段宽度为n位 |
fill(c) | setfill(c) | 设置填充宇符c |
setf() | setiosflags() | 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中的内容相同 |
unsetf() | resetioflags() | 终止已设置的输出格式状态,在括号中应指定内容 |
1. 成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效。
2. 在用成员函数setf和控制符setiosflags设置输出格式状态后,如果想改设置为同组的另一状态,应当调用成员函数unsetf(对应于成员函数self)或resetiosflags(对应于控制符setiosflags),先终止原来设置的状态,然后再设置其他状态。
使用setf()不是进行格式的、对用户最友好的方法,C++提供了多个控制符,能够调用setf(),并自动提供正确的参数。如下表格:
例如,std::cout<<std::left<<std::fixed; 该语句意义:打开左对齐和定点选项。
控制符 | 调用 | 含义 |
boolalpha | setf(ios_base::boolalpha) | 输入和输出bool值,可以为true/false |
noboolalpha | unsetf(ios_base::boolalpha) | |
showbase | setf(ios_base::showbase) | 对于输出,使用C++基数前缀(0, 0x) |
noshowbase | unsetf(ios_base::showbase) | |
showpoint | setf(ios_base::showpoint) | 显示末尾的小数点 |
noshowpoint | unsetf(ios_base::showpoint) | |
showpos | setf(ios_base::showpos) | 在正数前面加上+ |
noshowpos | unsetf(ios_base::showpos) | |
uppercase | setf(ios_base::uppercase) | 对于16进制输出,使用大写字母 E表示法 |
nouppercase | unsetf(ios_base::uppercase) | |
internal | setf(ios_base::internal, ios_base::adjustfield) | 符号或基数前缀左对齐,值右对齐 |
left | setf(ios_base::left, ios_base::adjustfield) | 使用左对齐 |
right | setf(ios_base::right, ios_base::adjustfield) | 使用右对齐 |
dec | setf(ios_base::dec, ios_base::basefield) | 使用基数10 |
hex | setf(ios_base::hex, ios_base::basefield) | 使用基数16 |
oct | setf(ios_base::oct, ios_base::basefield) | 使用基数8 |
fixed | setf(ios_base::fixed, ios_base::floatfield) | 使用定点计数法 |
scientific | setf(ios_base::scientific, ios_base::floatfield) | 使用科学计数法 |
相关文章推荐
- (C++)cout格式化输出示例
- C++中 cout的格式化输出(保留小数)
- c++ cout 格式化输出浮点数、整数及格方法
- C++ cout 格式化输出方法
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串,3q xuzhong
- [c++ primer plus]使用cout格式化输出
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串
- C++ cout 格式化输出方法
- C++中cout格式化输出的相关函数与控制符
- (C++)cout格式化输出示例
- c++ cout 格式化输出示例
- c++ cout 格式化输出
- C/C++的格式化输出(2)--cout
- C++ cout格式化输出
- [转载] c++ cout 格式化输出浮点数、整数及格方法
- (C++)cout格式化输出示例
- C++ ACM 基础 cin重定向 cout 格式化输出
- c++ cout 格式化输出浮点数、整数及格方法
- c++ cout 格式化输出
- C/C++的格式化输出(2)--cout