Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Ausgabe von Strings (https://www.delphipraxis.net/153237-ausgabe-von-strings.html)

fkerber 26. Jul 2010 10:03

Ausgabe von Strings
 
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

fkerber 26. Jul 2010 14:19

AW: Ausgabe von Strings
 
Hi!

Ok, Lösung dank C++-Forum gefunden ;)

Printf kann nicht mit Objekten wie std::string, da es nur ein Überbleibsel aus C-Zeiten ist.


Liebe Grüße,
Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz