namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:get_money

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 rrichter