[C++] std::String in const char konvertieren

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Du meinst zu const char* oder? probier mal str.c_str()...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

>Du meinst zu const char* oder? probier mal str.c_str()...

Hatte ich ja, hat aber nicht funktioniert. Deswegen habe ich auch nach ner anderen Lösung gesucht. Jetzt gehts plötzlich...
:roll:
naja, ich sollte dann mal besser schlafen gehen. :mrgreen:
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

X0r hat geschrieben:>Du meinst zu const char* oder? probier mal str.c_str()...

Hatte ich ja, hat aber nicht funktioniert. Jetzt gehts plötzlich...
:roll:
naja, ich sollte dann mal besser schlafen gehen. :mrgreen:
Hehe, die Erfahrung hatte ich mit C++ auch schon oft, am Tag darauf funktionierte
es plötzlich und ich hätte schwören können im Grunde nichts geändert zu haben... :lol:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

So, nächstes Problem. Ich lese aus einer Datei einen Integer-Wert aus. Den muss ich einer Funktion nun als const char übergeben. Normalerweise kann man ja die itoa Funktion benutzen, wäre aber kein gutes C++, oder?
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

X0r hat geschrieben:So, nächstes Problem. Ich lese aus einer Datei einen Integer-Wert aus. Den muss ich einer Funktion nun als const char übergeben. Normalerweise kann man ja die itoa Funktion benutzen, wäre aber kein gutes C++, oder?
Nein, dafür nimmt man stringstreams:

Code: Alles auswählen

#include <sstream>
//...
int zahl = 42;
stringstream ss;
ss << zahl;
string zahlstr = ss.str();
deine_funktion(zahlstr.c_str());
Das ist jetzt so aus dem Gedächtnis rausgeschrieben, habs nicht getestet...

EDIT: Mann kann auch den lexical cast aus der Boost Library dafür nehmen,
halte ich in diesem Fall allerdings für sinnlos weil der dafür auch nur intern
nen stringstream nutzt.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Funktioniert zwar, aber ist irgendwie nicht so schön, wenn man "temp"-objekte erstellen muss. Gibts ne andere Möglichkeit?
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

X0r hat geschrieben:Funktioniert zwar, aber ist irgendwie nicht so schön, wenn man "temp"-objekte erstellen muss. Gibts ne andere Möglichkeit?
Naja, den angesprochenen lexical cast aus Boost, oder du nimmst halt itoa,
das benützen viele noch. Stringstreams sind halt der empfohlene Weg für sowas...

Oder schreib dir selber ne Funktion :wink:

EDIT: Ach sprintf gibts auch noch, ist aber als unsicher verschrien (und außerdem C und nicht C++)
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Hm,
irgendwie kommt mir C++ gerade wie Chinesisch vor. Lange nix mehr gemacht, alles verlernt...

Es geht darum, dass ich eine Datei lesen will, in der sowohl Strings, als auch Integers gespeichert sind. Kann man ja mit der ifstream klasse auslesen, aber wie funktioniert das, wenn der inhalt gemischt ist(halt mal string, mal integer, mal float etc.)?

Code: Alles auswählen

			myfile->getline(test,sizeof(test));
			myfile->read(reinterpret_cast<char*>(&version),sizeof(int));
geht irgendwie nicht.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

[ot]
Welche IDE verwendest du eigentlich? Bin gerade dabei mir die Visual C++ Express Editon zu installieren. Was kostenlose IDE's angeht soll es angeblich die beste sein.

Hier zu finden:
http://www.microsoft.com/germany/Expres ... press.aspx

Ansonsten vielleicht noch Code::Blocks. Aber taugt die was?
[/ot]
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten