我正在练习C ++技能,并且正在编写一个“员工薪资信息”程序,该程序显示员工的姓名,薪资,地址等信息。这是我的布局:
===== Employee Test Information ====================================================
| Name: Emily Rodgers Hire Date: 06/10/2017 |
| Address: 1055 Testing Ave., Madison WI |
| Current Pay: $27.30 Hourly?: Yes |
| Email: emily.rodgers@usbank.com |
====================================================================================
如果输入更多/更少的文本,则不会更改:
===== Employee Test Information ====================================================
| Name: George Williams Hire Date: 12/10/2017 |
| Address: 21704 Fleming Rd., Madison WI |
| Current Pay: $24.70 Hourly?: Yes |
| Email: george.williams@usbank.com |
====================================================================================
处理这种问题的最佳方法是什么?
答案 0 :(得分:0)
在 iomanip 标头中找到几个操纵器,您可能会发现它们有用:
setw -此操纵器用于以特定列数输出表达式的值。用法示例:
std::cout << setw(5) << expression;
这将“表达式”输出到5个字符的列。因此,在您的示例中,您将信息分为两个主要信息列。找出这两个主要栏中的每个栏中可以容纳多少个字符。然后,您将使用 setw 操纵器来确保您的数据填充该列。您知道标签的时长,因为它们是恒定的,所以您所要做的就是使用 setw 操纵器,将其作为标签长度与主标签总长度的差柱。对第二列信息执行相同的操作。用两个 setw 调用执行一行输出。示例:
#include <iomanip>
std::cout << setw(5) << expression1 << setw(10) << expression2 << std::endl;
std::cout << setw(5) << expression3 << setw(10) << expression3 << std::endl;
只要每一行的格式都相同,输出应显示在列中。
您可能会在报告中发现有用的其他操纵器:
setfill(ch)-用字符 ch 填充空白。
left -设置左侧对齐方式。
right -设置右侧对齐方式。
更多信息,请访问https://docs.microsoft.com/en-us/cpp/standard-library/iomanip