sprintf mit "T%08d"



  • Guten Morgen!

    Ich habe in einem Beispielprogramm folgendes gefunden, verstehe es aber nicht komplett:

    sprintf(szBuffer, " T%08d", atoi(m_Edit_Tool));

    atoid(...) verwandelt den übergebenen String in einen Integer-Wert. Dieser Wert wird dann in den szBuffer (char szBuffer[50]) geschrieben.
    Der zweite Parameter in sprintf gibt das Format an, in dem besagter Integer-Wert in szBuffer geschrieben wird.
    Soweit richtig?

    Was heißt dann " T%08d"?
    Ich kenne nur "%d" als Platzhalter für double.
    Also was bitte steht in den einzelnen Positionen des szBuffers?

    Im voraus lieben Dank für jeden Hinweis 🙂
    Julia



  • Guten Morgen,

    julchen81 schrieb:

    Was heißt dann " T%08d"?
    Ich kenne nur "%d" als Platzhalter für double.
    Also was bitte steht in den einzelnen Positionen des szBuffers?

    %d steht als Platzhalter für einen int. Und der Term

    T%08d
    

    erzeugt zu Beispiel folgende Ausgabe:

    T00000007

    also wird die Zahl mit soviel Nullen nach vorne aufgefüllt, dass die Zahl danach acht Stellen hat.

    EDIT: Eine Aufstellung der einzelnen %-Codes findest Du unter http://www.cppreference.com/stdio/printf.html



  • aaaahhhhh..... 😃

    so ergibt das Sinn!

    Dankeschön!!!


Anmelden zum Antworten