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

3
这是我在SO上的第一篇帖子,我学编程才一个月,自学的,请大家多多关照 :) 以下是我的问题:
简而言之,我想要将货币金额右对齐。顺便说一下,我正在使用getline()来验证输入。有人能帮忙吗?谢谢!
原因和细节:
有时候这样写:
$  12345.67
$     45.30
$      1.01
比这样写更容易阅读:
$ 12345.67
$ 45.30
$ 1.01
我认为我已经想出了如何在输出时实现此功能:
cout << setfill(' ') << setw(40) << right << "Dr., SUBTOTAL:";
cout << " $";
cout << setw(10) << right << sum << endl;

看起来像这样:

                           医生,小计 $     12.34
或者
                           医生,小计 $   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


在纯标准的C++中,您无法交互地更改输入;您需要某些外部操作系统特定的库。在Linux上,请考虑使用GNU readlinencurses - Basile Starynkevitch
GNU readlinencurses都已经移植到了Windows系统。 - Basile Starynkevitch
1个回答

3

谢谢!我以前没听说过curses——至少不是那种。 - Jo-Jo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接