【问题标题】:align right and left without knowing the string width在不知道字符串宽度的情况下左右对齐
【发布时间】:2015-09-14 18:46:49
【问题描述】:

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

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()

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

我明白了!谢谢大家!

【问题讨论】:

  • 你通常设置一个最大的上界值。您是否有任何关于预期的最大位数的指示?否则我想你总是可以自己计算的
  • 您必须对数据进行两次传递。一次找出必要的最大字符串长度,然后另一遍进行输出
  • 能否等到收到所有值后再打印?
  • 回复:using namespace std;:stackoverflow.com/questions/1452721/…
  • 我没有最大设置,但我不知道我的教授是否允许。如果我确实设置了一个可以修复它的最大值,因为我可以让 setw() 与我的最大值相同,对吧?

标签: c++ iomanip setw


【解决方案1】:

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

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

例如:

std::cout.width(10); std::cout

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多