folgendes Problem: Ich habe eine Zahl, welche in einer String-variablen enthalten ist. Diese Zahl soll nun in einer Double-variablen gespeichert werden, aber wie?
Die Funktion atof() kann nicht verwendet werden, da hier ein char* als Eingabeparameter erwartet wird.
#include
string strVar = „27“;
double dVar = 0;
dVar = strVar; //Fehler! Aber hier sollte der Wert übergeben werden.
Die Funktion atof() kann nicht verwendet werden, da hier ein
char* als Eingabeparameter erwartet wird.
#include
string strVar = „27“;
Ich kenne den Variablentyp string gar nicht, aber string kann an
dieser Stelle nichts anderes als ein char* sein, da „27“ nichts
anderes als einen const char* an die Variable links vom
Zuweisungsoperator zurückgibt; genauer gesagt einen
char* auf die Adresse, in der die ‚2‘ steht; da „27“ im Speicher
dann als ‚2‘,‚7‘,’\0’ abgelegt wird, erkennt C/C++ damit auch
am ‚\0‘ den Ende dieser Zeichenkette (also falls string irgendwo
existiert, dann nur in der Art typedef char* string),
d.h.
#include // hier steht double atof(const char*s)
typedef char* string;
…
string strVar = „27“;
double dVar = 0;
string ist wohl der am meisten genutzte C+±Datentyp, der einfach eine Sequenz von Zeichen darstellt. C++ ohne string-Datentyp ist wie Kirche ohne Amen.
data( ) ist eine Memberfunktion der string-Klasse, welche einen Pointer auf das erste Element deines Strings strVal zurückgibt. Da strVal im Prinzip nur aus einer Reihe von chars besteht, ist damit die atof( )-Funktion zufrieden.
Bin voll des Lobes für Deine konsistente Namensgebung bei den Variablen. Findet man selten hier im Brett!
noch ein Beweis, daß ich als alter C-Programmierer immer
noch nicht C++ denke,
(programmiere C++ nur mit VisualC++ und habe da einfach ohne
langes Suchen die CString-Klasse aus MFC benutzt und in dem
C+±Buch, dass hier vor mir liegt, stand auch nichts von der
string-C++Standardbibliothek (böses,böses Buch )