casten nicht möglich?
-
std::map<std::string, std::string>::const_iterator it; for ( it = a.begin(); it != a.end(); ++it ) { char *c = (char)it->first; // wie bringe ich den std::string in ein char? // ich muss das c übergeben char *c = "hi"; // das geht bei der übergabe //char *c = it->first; // geht nicht }
error C2440: 'type cast' : 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' kann nicht in 'char' konvertiert werden
-
char *c = (char)it->first;
char *c ist ein Zeiger - ein Zeiger erwartet eine Adresse
(char)it-first; liefert anscheinend abere einen Wert eine Variablen - wenn dieser Wert als Adresse interpretiert wird - - -> B U U U Mwie bringe ich den std::string in ein char?
besteht dein String nur aus einem Buchstaben ???
-
it->first
liefert ja einen
string, da std::map<std::string, std::string>::const_iterator it; der erste "key" ein string ist
ich muss ich einer funktion, aber ein "..." übergeben sprich *char
wie bringe ich das it->first in ein *char?
-
it->first.c_str()
.c_str() gibt Dir bei einem std::string den Zeiger auf ein C-Style Character Array zurück
-
danke harry!
ich habs jetzt so
std::ostringstream buf; buf << it->first << ": " << it->second; //und dann bei übergabe buf.str().c_str()
-
//sollte auch funktionieren, kann aber sein, dass da noch Klammern fehlen. (it->first + it->second).c_str();