compiler kennt c_str() nicht
-
Ich will unter Verwendung von std::string ein Funktion schreiben mit der ich Zeichenketten aus einem Prozess auslesen kann. Die Funktion soll die Zeichenkette per char* zurückgeben. Dafür ist im MSDN 'c_str()' dokumentiert.
MSDN: "Converts the contents of a string as a C-style, null-terminated string."
Genau das was ich brauche. Nur bei mir kennt der Compiler die Funktion 'c_str()' nicht. Warum? Ich verwende Visual C++ 2008.
#include <iostream> #include <vector> #include <string> // Pseudo ReadSTR(long addr) function ... { std::vector<std::string> String; // memory reading here String.push_back("TESTSTRING123..."); // fake read string for testing ... return String.c_str(); // error C2039: 'c_str' : is not a member of 'std::vector<_Ty>' }
-
dudewhereis_c_str schrieb:
Ich will unter Verwendung von std::string ein Funktion schreiben mit der ich Zeichenketten aus einem Prozess auslesen kann. Die Funktion soll die Zeichenkette per char* zurückgeben. Dafür ist im MSDN 'c_str()' dokumentiert.
Was auch richtig ist. Du verwendest c_str aber nicht auf einen String, sondern auf ein Vector. Der Wiederum kennt c.str nicht.
std::string String = "TESTSTRING123..."; return String.c_str();
cu André
-
Manchmal seh ich den Wald vor lauter Bäumen nicht... omg wie peinlich
Danke André!
-
Die Funktion soll die Zeichenkette per char* zurückgeben
Ich will kein Krümelkacker sein, aber c_str () gibt ein const char* zurück - falls du also ein char brauchst, kommst du wohl um ne Kopie nicht drum rum ^^
bb
-
oder schreib:
vector<string> String; String.push_back("Teststring..."); return String[0].c_str();
-
Ihr wollt aber nicht einen const char* von ner lokalen Variable die nach dem verlassen der Funktion zerstört wird zurückgeben?