c++ - 在不知道字符串宽度的情况下左右对齐

标签 c++ iomanip setw

好的,所以我必须编写一个输出如下所示的程序:

Gross Amount: ............... $3575.00
Federal Tax: ................ $ 536.25
State Tax: .................. $ 125.13
Social Security Tax: ........ $ 205.56
Medicare/Medicaid Tax: ...... $  98.31
Pension Plan: ............... $ 178.75
Health Insurance: ........... $  75.00
Net Pay: .................... $2356.00

左边的字符串是固定的,我只会输入它们,但右边的总数是变量。我需要找到一种方法使右侧的变量始终设置为右侧,但是无法告诉变量的宽度(总数是多少位),因为这取决于用户。我看到的所有答案总是把它当作你知道它会有多宽一样对待。这是一个例子:

cout << setw(5) << right << x << endl;  

我找到的每一个都有一个数字,比如五,但问题是,我不知道宽度是五。我想把变量推到右边,不管它的宽度是多少。另外,我已经有了 using namespace std;编码,所以不需要 std::并且我已经编码了#include,所以我使用 setw() 而不是 cout.width()

------------更新------------

我明白了!谢谢大家!

最佳答案

您需要的是调整域操纵器。这允许左右对齐。

共有三种可能的设置,内部、左侧和右侧。

例如:

std::cout.width( 10 ); std::cout << std::right << v << '\n';

关于c++ - 在不知道字符串宽度的情况下左右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571796/

相关文章:

c++ - 如何使用 A-F(而不是 a-f)流式传输十六进制数?

c++ - std::setw() 在我的数组末尾插入 a\0

c++ - 打印表格 C++

c++ - 另一个 C++ 输出对齐问题

c++ - 如何使 Visual Studio 2015 C++ 项目与 Visual Studio 2010 兼容?

c++ - 如何从函数中退出而不是从 main() 中退出

c++ - 无法理解如何制作 istream 操纵器

c++ - DSP性能,应该避免什么?

c++ - 将时间步固定为 2500 FPS?

c++ - 为什么cout返回smanip?