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 einer von str aufgerufenen Wide-String.
Die Funktion verwirft alle Leerzeichen (wie von iswspace bestimmt) bis zum ersten Nicht-Leerzeichen. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Gleitkommadarstellung zu bilden, und wandelt sie in einen Gleitkommawert um. Der gültige Gleitkommawert kann einer der folgenden sein
- Dezimale Gleitkomma-Ausdrücke. Sie bestehen aus den folgenden Teilen:
- (optional) Vorzeichen (+ oder -)
- nicht-leere Folge von Dezimalziffern, die optional ein Dezimalpunktzeichen enthält (wie von der aktuellen C Locale bestimmt) (definiert den Signifikand)
- (optional)
eoderEgefolgt von einem optionalen Minus- oder Pluszeichen und einer nichtleeren Sequenz 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 von str_end aufgerufenen Zeiger auf das Wide-Zeichen nach dem letzten interpretierten Zeichen. Wenn str_end ein Nullzeiger ist, wird er ignoriert.
Inhalt |
[bearbeiten] Parameter
| str | - | Zeiger auf den nullterminierten Wide-String, der interpretiert werden soll |
| str_end | - | Zeiger auf einen Zeiger auf ein Wide-Zeichen. |
[bearbeiten] Rückgabewert
Gleitkommawert, der im Erfolgsfall dem Inhalt von str entspricht. Wenn der umgewandelte 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. Wenn keine Umwandlung durchgeführt werden kann, wird 0 zurückgegeben.
[bearbeiten] 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
[bearbeiten] 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)
[bearbeiten] Siehe auch
| (C99)(C99) |
konvertiert einen Byte-String in einen Gleitkommawert (Funktion) |
| C++ Dokumentation für wcstof, wcstod, wcstold
| |