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