CString Sonderzeichen



  • Hallo zusammen,

    weiss jemand wie man in CString das %-Zeichen darstellen kann? _T("%"); gibt mir eine Fehlerausgabe.

    Danke,

    Tanja



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich kenne CString nicht, aber falls es Formatierungen wie printf zulässt, würde ich es mit %% probieren.


  • Mod

    ??? Verstehe ich nicht ???

    CString strragezeichen = _T("?");
    


  • Und ich dachte immer "\%" als Escape Zeichen 😞


  • Mod

    thenoname schrieb:

    Und ich dachte immer "\%" als Escape Zeichen 😞

    Nein, Escapesequenzen würden schließlich vom Präprozessor aufgelöst (oder genau genommen nach dem "normalem" Präprozessor, aber vor dem Compiler). Das hieße, selbst wenn "\%" die Escapesequenz für "%" wäre, dann stünde im Source immer noch ein Prozentzeichen (welches man auch einfach so tippen könnte, da es keine besondere Bedeutung innerhalb einer Zeichenkette hat). Der Formatierungsstring wird jedoch zur Laufzeit ausgewertet und das besondere Zeichen zur Markierung von Tokens ist dabei das Prozentzeichen. Man braucht also eine Methode, um bei dieser Analyse zur Laufzeit das Prozentzeichen zu escapen. Und die Methode ist naheliegenderweise die Benutzung des einen besonderen Zeichens (also "%"), um diese Sequenzen einzuleiten.



  • gibt mir eine Fehlerausgabe.

    Welche? Ich benutze ständig

    +_T("%")
    

    um das Prozent an einen CString zu hängen.



  • tanja.hopfer schrieb:

    weiss jemand wie man in CString das %-Zeichen darstellen kann? _T("%"); gibt mir eine Fehlerausgabe.

    Den genauen Text der Fehlermeldung hätten wir dann doch gerne!

    Ich kann die Frage (auch) nicht nachvollziehen; geht alles ohne Fehlermeldung
    und funktioniert dann wie erwartet.

    CString test = _T("%");
    

    oder auch

    test = _T("Huhu");
    test += _T("%");
    

Log in to reply