wcstof, wcstod, wcstold
|
Definiert in Header
<wchar.h>
|
||
|
float
wcstof
(
const
wchar_t
*
restrict
str,
wchar_t
**
restrict
str_end
)
;
|
(seit C99) | |
|
double
wcstod
(
const
wchar_t
*
str,
wchar_t
**
str_end
)
;
|
(seit C95)
(bis C99) |
|
|
double
wcstod
(
const
wchar_t
*
restrict
str,
wchar_t
**
restrict
str_end
)
;
|
(seit C99) | |
|
long
double
wcstold
(
const
wchar_t
*
restrict
str,
wchar_t
**
restrict
str_end
)
;
|
(seit C99) | |
Interpretiert einen Gleitkommawert in der breiten Zeichenkette, auf die str zeigt.
Die Funktion verwirft alle Leerzeichen (wie durch iswspace bestimmt), bis das erste Nicht-Leerzeichen gefunden wird. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Gleitkommadarstellung zu bilden und konvertiert diese in einen Gleitkommawert. Der gültige Gleitkommawert 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)
eoderEgefolgt von optionalem Minus- oder Pluszeichen und nichtleerer Folge von Dezimalziffern (definiert den Exponenten zur Basis 10 )
|
(seit C99) |
- 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 Zeiger 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, der dem Inhalt von str bei Erfolg entspricht. 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 <errno.h> #include <stdio.h> #include <wchar.h> int main(void) { const wchar_t* p = L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 1.18973e+4932zzz"; printf("Parsing L\"%ls\":\n", p); wchar_t* end; for (double f = wcstod(p, &end); p != end; f = wcstod(p, &end)) { printf("'%.*ls' -> ", (int)(end-p), p); p = end; if (errno == ERANGE){ printf("range error, got "); errno = 0; } printf("%f\n", f); } }
Ausgabe:
Parsing L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 1.18973e+4932zzz": '111.11' -> 111.110000 ' -2.22' -> -2.220000 ' 0X1.BC70A3D70A3D7P+6' -> 111.110000 ' 1.18973e+4932' -> range error, got inf
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.29.4.1.1 Die Funktionen wcstod, wcstof und wcstold (S.: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.29.4.1.1 Die Funktionen wcstod, wcstof und wcstold (S.: TBD)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.29.4.1.1 Die Funktionen wcstod, wcstof und wcstold (S. 426-428)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.24.4.1.1 Die Funktionen wcstod, wcstof und wcstold (S. 372-374)
Siehe auch
|
(C99)
(C99)
|
wandelt eine Byte-Zeichenkette in einen Gleitkommawert um
(Funktion) |
|
C++-Dokumentation
für
wcstof
,
wcstod
,
wcstold
|
|