выровнять ввод getline () по правому краю в переполнении стека

Это мой первый пост на 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

2

Решение

Вы не можете делать это строго с cout / cin и getline. Вам нужно что-то вроде библиотеки проклятий http://en.wikipedia.org/wiki/Curses_(programming_library) и вам нужно захватить каждый ключ отдельно и перерисовать строку.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]