kennen:lib:get_money
Inhaltsverzeichnis
get_money()
#include
<iomanip>
template <class moneyT> T7 get_money(moneyT& mon, bool intl = false) template <class moneyT> T8 put_money(const moneyT& mon, bool intl = false)
Lesen bzw. schreiben Geldbeträge von einem/in einen Zeichenstrom abhängig von der Ländereinstellung.
Parameter
mon | Geldbetrag als long double oder std::string |
intl | true , wenn internationales Format |
Ergebnis
Rückgabewert: Ein- bzw. Ausgabestrom (vom Standard nicht näher definiert).
Siehe auch
Beispiel
- get_money.cpp
#include <iostream> #include <iomanip> #include <locale> #include <sstream> int main() { std::istringstream in("$1,234.56 2.22 USD 3.33"); long double v1, v2; std::string v3; in.imbue(std::locale("en_US.UTF-8")); in >> std::get_money(v1) >> std::get_money(v2) >> std::get_money(v3, true); if (in) { std::cout << std::quoted(in.str()) << " gelesen als: " << v1 << ", " << v2 << ", " << v3 << '\n'; } else { std::cout << "Nicht gelesen"; } }
Quelle: https://en.cppreference.com/w/cpp/io/manip/get_money
Hinweise
- Die eingelesenen Geldbeträge werden als Cents gespeichert: Aus "$ 1,234.56" wird 123456.0.
- Ländereinstellungen sind implementierungsabhängig: MinGW 8.2 (nuwen.net) kennt nur die Locale "C" und "POSIX".
- Die Verwendung von Gleitkommatypen für Geldbeträge ist meist eine schlechte Idee.
kennen/lib/get_money.txt · Zuletzt geändert: 2019-04-21 15:17 von 127.0.0.1