在c ++中右对齐getline()输入

时间:2014-01-21 19:51:16

标签: c++ input right-align

这是我关于SO的第一篇文章,这是我编程的第一个月,而且我正在自学,所以请你好看:)这就好了!

简而言之,我希望能够正确对齐货币金额。顺便说一下,我正在使用getline(),以便我可以验证输入。有人可以帮忙吗?谢谢!

理由,详情:

有时这样:     

    $  12345.67
    $     45.30
    $      1.01
    

比阅读更容易:     

    $ 12345.67
    $ 45.30
    $ 1.01
    

我想我在OUTPUTTING时想出了如何做到这一点:

cout << setfill(' ') << setw(40) << right << "Dr., SUBTOTAL:";
cout << " $";
cout << setw(10) << right << sum << endl;

看起来像:     

                           Dr., SUBTOTAL $     12.34
要么     
                           Dr., SUBTOTAL $   1234.56
完善! (我想。)

但是当提示用户输入一美元金额时,我无法弄清楚如何使其表现得像计算器,也就是说右对齐已输入的数字迄今。键入123.45的“定格动画”看起来像:     

    Dr. Cash.......$     1
    Dr. Cash.......$    12
    Dr. Cash.......$   12.
    Dr. Cash.......$  12.3
    Dr. Cash.......$ 12.34
希望这是有道理的。

更新:运行Windows,Code :: Blocks 13.12,GNU GCC,C ++ 11

1 个答案:

答案 0 :(得分:2)

你不能用cout / cin和getline严格执行此操作。你需要像curses库http://en.wikipedia.org/wiki/Curses_(programming_library)之类的东西,你需要分别捕获每个键并重新绘制线。