Namespaces
Variants

std:: wcstof, std:: wcstod, std:: wcstold

From cppreference.net
Definiert in Header <cwchar>
float wcstof ( const wchar_t * str, wchar_t ** str_end ) ;
(seit C++11)
double wcstod ( const wchar_t * str, wchar_t ** str_end ) ;
long double wcstold ( const wchar_t * str, wchar_t ** str_end ) ;
(seit C++11)

Interpretiert einen Gleitkommawert in der breiten Zeichenkette, auf die str zeigt.

Die Funktion verwirft alle Leerzeichen (wie durch std::iswspace bestimmt), bis das erste Nicht-Leerzeichen gefunden wird. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Gleitkommazahl-Darstellung zu bilden und konvertiert diese in einen Gleitkommazahl-Wert. Der gültige Gleitkommazahl-Wert kann einer der folgenden sein:

  • Dezimale Gleitkomma-Ausdrücke. Es besteht aus den folgenden Teilen:
  • (optional) Plus- oder Minuszeichen
  • nichtleere Folge von Dezimalziffern, optional mit Dezimaltrennzeichen (wie durch die aktuelle C- Locale bestimmt) (definiert die Signifikande)
  • (optional) e oder E gefolgt von optionalem Minus- oder Pluszeichen und nichtleerer Folge von Dezimalziffern (definiert den Exponenten zur Basis 10 )
  • hexadezimale Gleitkomma-Ausdrücke. Sie bestehen aus folgenden Teilen:
  • (optional) Plus- oder Minuszeichen
  • 0x oder 0X
  • nicht-leere Folge hexadezimaler Ziffern, optional mit Dezimaltrennzeichen (wie durch die aktuelle C- Locale bestimmt) (definiert die Signifikande)
  • (optional) p oder P gefolgt von optionalem Minus- oder Pluszeichen und nicht-leerer Folge dezimaler Ziffern (definiert den Exponenten zur Basis 2 )
  • Unendlichkeits-Ausdrücke. Sie bestehen aus folgenden Teilen:
  • (optional) Plus- oder Minuszeichen
  • INF oder INFINITY Groß-/Kleinschreibung wird ignoriert
  • Keine-Zahl-Ausdrücke. Sie bestehen aus folgenden Teilen:
  • (optional) Plus- oder Minuszeichen
  • NAN oder NAN( char_sequence  ) Groß-/Kleinschreibung des NAN Teils wird ignoriert. char_sequence darf nur Ziffern, lateinische Buchstaben und Unterstriche enthalten. Das Ergebnis ist ein stiller NaN-Gleitkommawert.
(seit C++11)
  • jeder andere Ausdruck, der von der aktuell installierten C Locale akzeptiert werden kann.

Die Funktion setzt den Zeiger, auf den str_end zeigt, so, dass er auf das Breitzeichen nach dem letzten interpretierten Zeichen zeigt. Wenn str_end ein Nullzeiger ist, wird er ignoriert.

Inhaltsverzeichnis

Parameter

str - Zeiger auf den zu interpretierenden nullterminierten Breitzeichen-String
str_end - Zeiger auf einen Zeiger auf ein Breitzeichen

Rückgabewert

Fließkommawert entsprechend dem Inhalt von str bei Erfolg. Falls der konvertierte Wert außerhalb des Bereichs des entsprechenden Rückgabetyps liegt, tritt ein Bereichsfehler auf und HUGE_VAL , HUGE_VALF oder HUGE_VALL wird zurückgegeben. Falls keine Konvertierung durchgeführt werden kann, wird 0 zurückgegeben.

Beispiel

#include <cerrno>
#include <clocale>
#include <cwchar>
#include <iostream>
#include <string>
int main()
{
    const wchar_t* p = L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 -Inf 1.18973e+4932zzz";
    wchar_t* end;
    std::wcout << "Parsing L\"" << p << "\":\n";
    for (double f = std::wcstod(p, &end); p != end; f = std::wcstod(p, &end))
    {
        std::wcout << "  '" << std::wstring(p, end-p) << "' -> ";
        p = end;
        if (errno == ERANGE)
        {
            std::wcout << "range error, got ";
            errno = 0;
        }
        std::wcout << f << '\n';
    }
    if (std::setlocale(LC_NUMERIC, "de_DE.utf8"))
    {
        std::wcout << L"With de_DE.utf8 locale:\n";
        std::wcout << L"  '123.45' -> " << std::wcstod(L"123.45", 0) << L'\n';
        std::wcout << L"  '123,45' -> " << std::wcstod(L"123,45", 0) << L'\n';
    }
}

Ausgabe:

Parsing L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 -Inf 1.18973e+4932zzz":
  '111.11' -> 111.11
  ' -2.22' -> -2.22
  ' 0X1.BC70A3D70A3D7P+6' -> 111.11
  ' -Inf' -> -inf
  ' 1.18973e+4932' -> range error, got inf
With de_DE.utf8 locale:
  '123.45' -> 123
  '123,45' -> 123.45

Siehe auch

wandelt eine Byte-Zeichenkette in einen Gleitkommawert um
(Funktion)
C-Dokumentation für wcstof