Dieses "%03d" ist ein Formatspezifizierer(oder so ähnlich). Die Funkton kann beleibig viele Parameter aufnehmen, wobei der erste der buffer in den geschrieben werden soll und der zweite der Formatstring sein muss. Der Rest sind Variablen, die man verwenden möchte. Die mit %-Zeichen eingeleiteten Platzhalter zeigen der Funktion an, an welcher Stelle eine Variable eines bestimmten Typs soll. Unterschiedliche Zeichen bedeuten Unterschiedliches.
%c steht z.b für einen char-Buffer(string), %d für einen int-Wert oder %f für einen float-Wert. Eine Auflistung findet sich
hier. Bei der Frage, welche Variable zu welchem Formatspezifikator gehört geht es einfach nach der Reihenfolge. Ein Beispiel:
(printf ist analog zu sprintf, mit dem Unterschied, dass printf eine Bildschrimausgabe macht.)
(ungetestet)
Code:
char stringbuffer1[] = "Hallo";
char stringbuffer2[] = "ich bin doof";
for(int i = 1; i < 10;i++) {
printf( "%c, %c.\nDas sage ich jetzt zum %d. Mal\n\n", stringbuffer1, stringbuffer2, i);
} Sollte(wenn ich nicht irgendwo was falschgemacht habe) etwa das ausgeben:
Hallo, ich bin doof.
Das sage ich jezt zum 1. Mal
Hallo, ich bin doof.
Das sage ich jezt zum 2. Mal
Hallo, ich bin doof.
Das sage ich jezt zum 3. Mal
...
Ja, ich weiß, sehr sinnvoll sind meine Sätze nicht, aber das war auch nicht der Zweck der Übung...
Man kann noch verschiedene andere Sachen machen, das %03d ist z.B. eine Integer Variable, die links mit Nullen auf drei Stellen aufgefüllt wird. Hab ich verwendet, damit dann Filenamen wie file004.jpg oder file034.jpg oder file124.jpg herauskommen.
Ich hoffe ich habe geholfen!
Zarniwoop