Hi!
Ich bin verwirrt
Ich versuche, in einem bestehendem Programm (nicht von mir) Strings auszugeben - ganz normal auf der Konsole.
Leider fliegt es mir um die Ohren - und ich habe absolut keine Ahnung, was hier schief geht.
Ich habe folgende Methode, in der ich das printf untergebracht habe:
Code:
const ResourceType *TechTree::getResourceType(const string &name) const{
for(int i=0; i<resourceTypes.size(); ++i){
if(resourceTypes[i].getName()==name){
printf("%s", resourceTypes[i].getName()); // <---- HIER
return &resourceTypes[i];
}
}
throw runtime_error("Resource Type not found: "+name);
}
Das Ganze stirbt ganz furchtbar - auf der Konsole steht ein Haufen Müll und danach stirbt die Anwendung. Schaue ich mir die Methode an, so sieht sie so aus:
Code:
string getName() const {return name;}
Ich hatte den Verdacht, dass string vllt. irgendwie kein normaler String ist, aber wenn ich mir die Definition anschaue, dann finde ich da
Code:
typedef basic_string<char, char_traits<char>, allocator<char> >
string;
im Namespace std in der Datei xstring - ich würde also davon ausgehen, dass das ein normaler String ist.
Jetzt bin ich ratlos.
Was mache ich falsch?
Liebe Grüße,
Frederic
P.S.
Crossposting:
http://www.c-plusplus.de/forum/viewt...s-1931979.html