【问题标题】:right-align getline() input in c++在 C++ 中右对齐 getline() 输入
【发布时间】:2014-01-22 03:58:38
【问题描述】:

这是我在 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 的“定格动画”看起来像:

卡什博士.......$ 1 卡什博士.......$ 12 卡什博士…………12 美元。 卡什博士.......$ 12.3 卡什博士.......$ 12.34 希望这是有道理的。

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

【问题讨论】:

  • 您不能在纯标准 C++ 中以交互方式更改输入;您将需要一些外部的、特定于操作系统的库。在 Linux 上考虑 GNU readlinencurses
  • GNU readlinencurses 都已移植到 Windows。

标签: c++ input right-align


【解决方案1】:

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

【讨论】:

  • 谢谢!我以前没听说过诅咒——嗯,不是那种。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
相关资源
最近更新 更多