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

align right and left without knowing the string width

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

Gross Amount: ............... 75.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: .................... 56.00

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

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

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

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

我明白了!谢谢大家!

你想要的是adjustfield操纵器。这允许左右对齐。

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

例如:

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