Umwandeln von Zeichen in Zahlen

Hallo, ich bin C++ anfänger und habe folgendes Problem. Ich möchte einfach eine Funktion haben welche mir irgendeine eingegebene Zahl in einem eingabefeld auch als Zahl abspeichert. C++ behandelt dieses Zahlen wie Zeichen.

Kann mir jemand weiterhelfen !

PD

Hallo, ich bin C++ anfänger und habe folgendes Problem. Ich
möchte einfach eine Funktion haben welche mir irgendeine
eingegebene Zahl in einem eingabefeld auch als Zahl
abspeichert. C++ behandelt dieses Zahlen wie Zeichen.

double strtod( const char *nptr, char **endptr );
long strtol( const char *nptr, char **endptr, int base );

Bsp:

char *string, *stopstring;
long l;

string = „-10110134932This stopped it“;
l = strtol( string, &stopstring, 10 );

Klaus

Hi,

Ich
möchte einfach eine Funktion haben welche mir irgendeine
eingegebene Zahl in einem eingabefeld auch als Zahl
abspeichert. C++ behandelt dieses Zahlen wie Zeichen.

Naja, vielleicht solltest Du Dich ein bisserl mit Datentypen auseinandersetzen. „C++ behandelt dieses Zahlen wie Zeichen“ klingt so als fehle einiges an grundlagen …
Die STL bietet eine Moeglichkeit zur Umwandlung via Stringstreams, wie das funktioniert, weiss ich allerdings nicht. Als Quelen seien empfohlen „Thinking in C++“ Volume Two (beschreibt die STL auf hoeerem Niveau, http://www.bruceeckel.com/ ) und die Dinkum C++ library reference (STL Referenz auf sehr hohem Niveau, vermutlich verstehst Du das noch nicht, http://www.dinkumware.com/ etwas schwer uzu finden, das direkte link ist http://www.dinkumware.com/htm_cpl/index.html ).
In der STL gibt es auch eine Klasse string. Zu dieser Klasse habe ich eine Erweiterung geschrieben, die (unter anderem) die Umwandlung automatisch und unkompliziert durchfuehrt. Da bei einer Usereingabe allerdings nicht gewaehrleistet ist, dass eine Umwandlung moeglich ist, muesstest Du die Exceptions abfangen die meine Klasse in diesem Fall wirft. Dazu muesstest Du Dich mit Exceptionhandling auseinandersetzen (siehe „Thinking in C++“). Ausserdem passieren in dieser Klasse sehr viele Umwandlungen wie gesagt automatisch, was sie nicht ganz ungefaehrlich macht! Wenn Du an dieser Klasse interessiert bist, kann ich sie Dir gerne unter gPL zusenden.

gruss

Thorsten

C bzw. C++ behandelt Zahlen nicht als strings, nur wenn man sie über ein Editierfeld eingibt können es halt noch keine Zahlen sein. Umwandeln lassen sich folgende strings am einfachsten mit der Funktion atof (ascii to float). In C++ gibt es jedoch je nach Klassenbibliothek noch diverse andere Möglichkeiten z.B. ToDouble der AnsiString-Klasse (Borland Builder).

Gruss Werner

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]