C++ left和right操作符用法详解
正如学习 fixed、setprecision 和 showpoint 时的代码示例所看到的,cout 的输出是右对齐的,这意味着如果打印的字段大于显示的值,则值会被打印在字段的最右侧,带有前导空格。
有时人们可能会希望强制一个值在其字段的左侧打印,而在右边填充空格。为此可以使用 left 操作符。left 的左对齐设置将一直有效,直到使用 right 操作符将设置改回为右对齐。这些操作符可以用于任何类型的值,甚至包括字符串。
下面的程序说明了 left 和 right 操作符的用法。它还说明了 fixed、setprecision 和 showpoint 操作符对整数没有影响,只对浮点数有效。
有时人们可能会希望强制一个值在其字段的左侧打印,而在右边填充空格。为此可以使用 left 操作符。left 的左对齐设置将一直有效,直到使用 right 操作符将设置改回为右对齐。这些操作符可以用于任何类型的值,甚至包括字符串。
下面的程序说明了 left 和 right 操作符的用法。它还说明了 fixed、setprecision 和 showpoint 操作符对整数没有影响,只对浮点数有效。
// This program illustrates the use of the left and right manipulators. #include <iostream> #include <iomanip> // Header file needed to use stream manipulators #include <string> // Header file needed to use string objects using namespace std; int main() { string month1 = "January", month2 = "February", month3 = "March"; int days1 = 31, days2 = 28, days3 = 31; double high1 = 22.6, high2 = 37.4, high3 = 53.9; cout << fixed << showpoint << setprecision(1); cout <<"Month Days High\n"; cout << left << setw(12) << month1 << right << setw(4) << days1 << setw(9) << high1 << endl; cout << left << setw(12) << month1 << right << setw(4) << days1 << setw(9) << high1 << endl; cout << left << setw(12) << month1 << right << setw(4) << days1 << setw(9) << high1 << endl; return 0; }程序输出结果:
Month Days High
January 31 22.6
January 31 22.6
January 31 22.6
流操作符 | 描 述 |
---|---|
setw(n) | 为下一个值的输出设置最小打印字段宽度为 n |
fixed | 以固定点(例如小数点)的形式显示浮点数 |
showpoint | 显示浮点数的小数点和尾数 0,即使没有小数部分也一样 |
setprecision(n) | 设置浮点数的精度 |
left | 使后续输出左对齐 |
right | 使后续输出右对齐 |
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算