cout mit CString verwenden
-
Hi,
ich hab zwar die Lösung schon gefunden nur ist es mir nicht ganz klar was das Problem ist?
So funktioniert die Ausgabe eines CStrings mit cout:
cout << static_cast<const char *>( CString );
Nur schnall ich es nicht ganz warum der cast sein muss und ich nicht einfach schreiben kann:
cout << CString;
Legolas
-
CString::getBuffer(0) dürfte auch funktionieren
-
Okee, geht auch ...
CString Dummy; LPSTR Test = Dummy.GetBuffer(0); cout << Test << "\n";
2 Lösungen für ein Problem das ich aber immer noch net ganz verstehe
Wo liegt das Prob beim CString??
-
Original erstellt von Legolas:
Wo liegt das Prob beim CString??cout (und alle C++ streams) basieren auf den operatoren >> und <<
jede klasse die op>> und/oder op<< überladen hat kann man mit streams verwenden (je nachdem: lesen, schreibend oder beides)CString ist nun eine alte MFC Klasse. als man CString entwarf, gab es dieses Stream-System noch nicht, bzw. war es noch nicht reif (hab keine ahnung wann CString genau entwickelt wurde)
Lange rede, kurzer Sinn:
CString fehlen die beiden operatoren >> und <<
deshalb kann man CString nicht mit C++ streams verwenden.
-
Gracias @Shade ...