Konvertierung von string zu const char* ?!?
-
Hi,
ich fange gerade an mit C++ (habe vorher jedoch bereits einige Erfahrung mit Pascal, Java etc gesammelt), und stolpere jetzt über ein komisches Problem.
Ich möchte einen String in einen float konvertieren, und nutze dazu die Funktion atof().
Diese erwartet wie ich festgestellt habe einen Parameter vom Typ "const char*", also einen Zeiger auf einen konstanten Char-Wert. Soweit ist hoffentlich alles richtig?
Nun habe ich aber einen String, den ich umwandeln möchte. Nun gut, die Substring-Funktion strstr() die ich eine Zeile darüber verwendet habe, erwartet den gleichen Parameter, und dort habe ich einfach den String übergeben. Also wieso hier nicht auch?! Gesagt getan - denkste.
Der Compiler sagt mir immer, das er den string nicht in einen const char* konvertieren kann.
Aber wieso? Zumal er es davor ja auch kann, anscheinend.
Ich arbeite übrigens mit Eclipse 3.1.
Die nötigen Bibliotheken string.h usw. habe ich denke ich alle eingebunden.
Danke für eure Hilfe.
MfG
-
c_str() und binde string ohne .h ein.
-
c_str() liefert dir das gesuchte.
Bitte auch hier rein sehen:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-163600.html
Hier werden die, für C++ eher passenden stringstream oder lexical_cast erläutert, die alternativ verwendet werden könnten (und wenn Performance an der Codestelle kein Problem darstellt vorgezogen werden sollten)
-
Danke! Problem gelöst.
Ich glaube ich muss mich nochmal näher zu diesen Typ-Castings belesen. Das ganze ist doch nur ein Überbleibsel aus C, oder?
PS: Hatte string korrekt eingebunden.
MfG
-
atof atoi sind "überbleibsel" aus C wärend die casts zu einer externen Lib gehören (ka ob die nun im TR1 sind, nicht mit beschäftigt).