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 ...


Anmelden zum Antworten