AnsiString Test.sprintf(...) Frage



  • Hallo zusammen,

    ich würde gerne mit der Funktion sprintf zwei "%%"- Zeichen hintereinander schreiben. Wie kann ich das anstellen, dass der Compiler nicht meint, es sein eine Formatierungsanweisung ?

    DANKE



  • Die Hilfe zu den Formatierungsflags gibt da auskunft.

    -junix



  • Ich danke dir junix, für deine erschopfende Antwort.

    Ich bin ja auch für "Hilfe zur Selbsthilfe".

    Ich habe wegen meines Problems auch schon in der Hilfe nachgesehen, aber diesbezüglich bis jetzt nichts finden können. Deshalb habe ich die Frage auch in diesem Forum gestellt. Es kann durchaus sein dass ich bis jetzt noch nicht am richtigen Platz in der Hilfe nachgesehen habe und deshalb auch nichts finden konnte.

    Um deinen erzieherischen Fähigkeiten aber zu entsprechen werde ich weitersuchen.

    Besten DANK

    Gruß



  • Ich habs zwar auf die Schnelle auch nicht gefunden, aber ...
    Was macht man denn wenn man einen Backslash in einer Stringkonstanten unterbringen will ? Backslash hat ja auch eine besondere Bedeutung ! Richtig, man schreibt '\'.
    Was probiert man daraufhin, will man ein Prozentzeichen in einer Formatierungsanweisung schreiben 🙄



  • Alternative: Man tut dasselbe wie wenn man in einem Menüpunkt ein "&" haben will: einfach doppelt angeben ("%%"). C++ mag sowieso alles, dass doppelt vorkommt.



  • @Dasd
    Was hab ich wohl gerade geschrieben bzw. auf was wollte ich denn hinweisen, hä 😕



  • @Peter:
    Und was habe ich wohl gerade geschrieben? Wohl kaum dasselbe wie du. Außerdem hast du selbst geschrieben, dass du es auf die Schnelle auch nicht gefunden hast (ich im übrigen auch nicht, stand in der guten alten Turbo-C Hilfe). Es hätte also durchaus auch nicht funktionieren können.



  • @Dasd
    Du hast was von einer Alternative geschrieben, aber daß '%%' eine Alternative zu '%%' ist 🙄
    Auf genau das '%%' wollte ich ja den Fragesteller mit der Nase stoßen 🙂



  • maam schrieb:

    Ich danke dir junix, für deine erschopfende Antwort.[...]

    Lese ich da etwas Sarkasmus? Kleiner Tip: Es gibt auch sprintf als C-Funktion... da kann man wohl davon ausgehen, dass die FUnktionen weitgehend kompatibel gehalten wurden. sprintf gehört in die ?printf-Familie und da werden wiederum die Formatierungsflags sehr ausführlich erklärt.

    -junix



  • DANKE, DANKE für die vielen Hilfestellungen.

    Ich habe die meisten auch schon probiert.
    Die Sache mit dem "%%" funktioniert, aber nur bei AnsiString.sprintf(...).
    Mein Problem ist damit erledigt.

    junix schrieb:

    sprintf gehört in die ?printf-Familie und da werden wiederum die Formatierungsflags sehr ausführlich erklärt

    Will man zwei %% bei der C-Funktion sprintf erreichen, muss man das %- Zeichen insgesamt 4 mal hintereinander schreiben.
    Dies habe ich aber durch ausprobieren entdeckt.
    In der Hilfe kann und konnte ich leider dazu nichts finden.



  • Dies habe ich aber durch ausprobieren entdeckt

    👍



  • maam schrieb:

    In der Hilfe kann und konnte ich leider dazu nichts finden.

    Hab leider keinen BCB und dessen Hilfepakete zur Hand, allerdings würde ich spontan behaupten, dass sich die Beschreibung von Printf nicht im Westenlichen von dem hier unterscheidet:
    http://www.die.net/doc/linux/man/man3/printf.3.html

    Und die Tatsache, dass du 4 % schreiben musst, erscheint dir hoffentlich logisch.

    -junix



  • Hallo junix,

    kompliment: So eine ausführliche Hilfe habe ich leider bei meinem BCB 5 nicht.

    junix schrieb:

    Und die Tatsache, dass du 4 % schreiben musst, erscheint dir hoffentlich logisch.

    Anfänglich habe ich es mit 3 % versucht, das war aber nicht so der Hit, jetzt ist mir aber schon klar, dass ich 4 brache.

    Ich denke man braucht die Sache nicht mehr zu vertiefen, da sich ja jetzt mein Problem erledigt hat.

    Trotzdem danke ich allen (wenn es auch etwas mühsam war).



  • @Peter:
    Ich glaube, jetzt verstehe ich. Ich dachte du meinst die Möglichkeit "\%" die ebenfalls funktioniert. 'tschuldigung.



  • @Dasd
    😉 aber daß '\%' auch funktioniert wußte ich ehrlich gesagt nicht. Danke für den Hinweis 💡


Anmelden zum Antworten