std:: stof, std:: stod, std:: stold
|
Definiert im Header
<string>
|
||
|
float
stof
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(1) | (seit C++11) |
|
float
stof
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(2) | (seit C++11) |
|
double
stod
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(3) | (seit C++11) |
|
double
stod
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(4) | (seit C++11) |
|
long
double
stold
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(5) | (seit C++11) |
|
long
double
stold
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(6) | (seit C++11) |
Interpretiert einen Gleitkommawert in einer Zeichenkette str .
Sei ptr ein interner (für die Konvertierungsfunktionen) Zeiger vom Typ char * (1,3,5) oder wchar_t * (2,4,6) , entsprechend.
Die Funktion verwirft alle Leerzeichen (wie durch std::isspace 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 Signifikante)
-
(optional)
eoderEgefolgt von optionalem Minus- oder Pluszeichen und nichtleerer Folge von Dezimalziffern (definiert den Exponenten zur Basis 10 )
- hexadezimale Fließkomma-Ausdruck. Er besteht aus den folgenden Teilen:
-
- (optional) Plus- oder Minuszeichen
-
0xoder0X - nichtleere Folge hexadezimaler Ziffern, optional mit einem Dezimaltrennzeichen (wie durch die aktuelle C- Locale bestimmt) (definiert die Signifikande)
-
(optional)
poderPgefolgt von optionalem Minus- oder Pluszeichen und einer nichtleeren Folge dezimaler Ziffern (definiert den Exponenten zur Basis 2 )
- Infinity-Ausdruck. Er besteht aus den folgenden Teilen:
-
- (optional) Plus- oder Minuszeichen
-
INFoderINFINITYGroß-/Kleinschreibung wird ignoriert
- not-a-number-Ausdruck. Er besteht aus den folgenden Teilen:
-
- (optional) Plus- oder Minuszeichen
-
NANoderNAN(char_sequence )unter Nichtbeachtung der Groß-/Kleinschreibung desNANTeils. char_sequence darf nur Ziffern, lateinische Buchstaben und Unterstriche enthalten. Das Ergebnis ist ein stiller NaN-Gleitkommawert.
- jeder andere Ausdruck, der von der aktuell installierten C Locale akzeptiert werden kann.
Wenn pos kein Nullzeiger ist, dann erhält ptr die Adresse des ersten nicht konvertierten Zeichens in str. c_str ( ) , und der Index dieses Zeichens wird berechnet und in * pos gespeichert, was die Anzahl der durch die Konvertierung verarbeiteten Zeichen angibt.
Inhaltsverzeichnis |
Parameter
| str | - | die zu konvertierende Zeichenkette |
| pos | - | Adresse einer Ganzzahl zum Speichern der Anzahl verarbeiteter Zeichen |
Rückgabewert
Der in den angegebenen Gleitkommatyp konvertierte String.
Ausnahmen
std::invalid_argument falls keine Konvertierung durchgeführt werden konnte.
std::out_of_range falls der konvertierte Wert außerhalb des Bereichs des Ergebnistyps liegen würde oder wenn die zugrunde liegende Funktion ( std::strtof , std::strtod oder std::strtold ) errno auf ERANGE setzt.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 2009 | C++11 |
std::out_of_range
würde nicht geworfen, wenn der konvertierte
Wert außerhalb des Bereichs des Ergebnistyps liegen würde |
wird werfen |
| LWG 2403 | C++11 |
stof
rief
std::strtod
oder
std::wcstod
auf
|
stof
ruft
std::strtof
oder
std::wcstof
auf
|
Siehe auch
|
(C++11)
(C++11)
(C++11)
|
konvertiert einen String in eine vorzeichenbehaftete Ganzzahl
(Funktion) |
|
(C++11)
(C++11)
|
konvertiert einen String in eine vorzeichenlose Ganzzahl
(Funktion) |
|
(C++17)
|
konvertiert eine Zeichenfolge in einen Ganzzahl- oder Gleitkommawert
(Funktion) |