Namensräume
Varianten
Aktionen

std::atof

Von cppreference.com
< cpp‎ | string‎ | byte
 
 
 
 
Definiert in Header <cstdlib>
double atof( const char* str );

Interpretiert einen Gleitkommawert in einer Byte-Zeichenkette, auf die str zeigt.

Die Funktion verwirft beliebige Leerzeichen (wie von 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 sie in einen Gleitkommawert. Der gültige Gleitkommawert kann einer der folgenden sein:

  • Dezimale Gleitkomma-Ausdrücke. Sie bestehen aus den folgenden Teilen:
  • (optional) Vorzeichen (+ oder -)
  • Nichtleere Sequenz von Dezimalziffern, die optional ein Dezimaltrennzeichen enthält (wie von der aktuellen C Locale bestimmt) (definiert den Significand)
  • (optional) e oder E gefolgt von einem optionalen Minus- oder Pluszeichen und einer nichtleeren Sequenz von Dezimalziffern (definiert den Exponenten zur Basis 10)
  • Hexadezimale Gleitkomma-Ausdrücke. Sie bestehen aus den folgenden Teilen:
  • (optional) Vorzeichen (+ oder -)
  • 0x oder 0X
  • Nichtleere Sequenz von Hexadezimalziffern, die optional ein Dezimaltrennzeichen enthält (wie von der aktuellen C Locale bestimmt) (definiert den Significand)
  • (optional) p oder P gefolgt von einem optionalen Minus- oder Pluszeichen und einer nichtleeren Sequenz von Dezimalziffern (definiert den Exponenten zur Basis 2)
  • Unendlichkeits-Ausdrücke. Sie bestehen aus den folgenden Teilen:
  • (optional) Vorzeichen (+ oder -)
  • INF oder INFINITY (Groß-/Kleinschreibung wird ignoriert)
  • Nicht-eine-Zahl-Ausdrücke. Sie bestehen aus den folgenden Teilen:
  • (optional) Vorzeichen (+ oder -)
  • NAN oder NAN(char_sequence ) (Groß-/Kleinschreibung des Teils NAN wird ignoriert). char_sequence darf nur Ziffern, lateinische Buchstaben und Unterstriche enthalten. Das Ergebnis ist ein Quiet-NaN-Gleitkommawert.
(seit C++11)
  • Andere Ausdrücke, die von der aktuell installierten C Locale akzeptiert werden könnten.

Inhalt

[edit] Parameter

str - Zeiger auf die nullterminierte Byte-Zeichenkette, die interpretiert werden soll

[edit] Rückgabewert

double Wert, der dem Inhalt von str bei Erfolg entspricht. Wenn der konvertierte Wert außerhalb des Bereichs des Rückgabetyps liegt, ist der Rückgabewert undefiniert. Wenn keine Konvertierung durchgeführt werden kann, wird 0.0 zurückgegeben.

[edit] Beispiel

#include <cstdlib>
#include <iostream>
 
int main()
{
    std::cout << std::atof("0.0000000123") << '\n'
              << std::atof("0.012") << '\n'
              << std::atof("15e16") << '\n'
              << std::atof("-0x1afp-2") << '\n'
              << std::atof("inF") << '\n'
              << std::atof("Nan") << '\n'
              << std::atof("invalid") << '\n';
}

Ausgabe

1.23e-08
0.012
1.5e+17
-107.75
inf
nan
0

[edit] Siehe auch

(C++11)(C++11)(C++11)
konvertiert einen String in einen Gleitkommawert
(function) [edit]
konvertiert einen Byte-String in einen Gleitkommawert
(Funktion) [bearbeiten]
konvertiert eine Zeichensequenz in einen Ganzzahl- oder Gleitkommawert
(Funktion) [bearbeiten]
konvertiert einen Byte-String in einen Ganzzahlwert
(Funktion) [bearbeiten]
C-Dokumentation für atof