Mehrere Werte in einem printf
Bisher hat jedes printf einen Wert ausgegeben. Ein printf kann aber mehrere ausgeben. Schreibe für jeden Wert ein %d in den Text und die Werte hinter den Text, durch Kommas getrennt:
int aepfel = 4;
int birnen = 3;
printf("%d Äpfel und %d Birnen\n", aepfel, birnen);
printf("%d + %d = %d\n", aepfel, birnen, aepfel + birnen);Das gibt Folgendes aus:
4 Äpfel und 3 Birnen
4 + 3 = 7Wie du aus der vorigen Lektion weißt, ist der Text in Anführungszeichen die Formatzeichenkette: Sie bestimmt, wie die Zeile aussieht. Jedes %d darin ist eine Formatangabe, ein Platzhalter für einen Wert. printf füllt sie der Reihe nach: Der erste Wert kommt in das erste %d, der zweite in das zweite %d und so weiter. Ein Wert kann eine Variable sein, eine Zahl oder eine ganze Rechnung wie aepfel + birnen.
Die Reihenfolge der Werte ist also wichtig. Wenn du sie vertauschst, tauschen sie auch in der Ausgabe die Plätze:
int heim = 2;
int gast = 1;
printf("Heim %d, Gast %d\n", gast, heim);Das gibt Folgendes aus:
Heim 1, Gast 2Auch Leerzeichen gehören zur Formatzeichenkette. printf gibt sie genau so aus, wie sie geschrieben ist: "Stand:%d" gibt Stand:3 aus und "Stand: %d" gibt Stand: 3 aus.
Die Zahl der Formatangaben muss zur Zahl der Werte passen. Fehlt ein Wert, meldet der Compiler more '%' conversions than data arguments: Es gibt mehr Platzhalter als Werte. Ist ein Wert zu viel da, meldet er data argument not used by format string.
So schreibst du es:
Anweisungen
- 1
Gib darunter den Spielstand mit einem
printfmit zwei%daus. Nimm die Zahlen aus den Variablenheimundgast:Stand: 3:1 - 2
Gib in der nächsten Zeile diesen Text aus. Verwende ein
printfmit drei Werten:minute,heimundgast. Schreibe die Zahlen nicht in den Text:Nach 90 Minuten: 3:1 - 3
Gib zum Schluss die Zahl der Tore als Rechnung aus. Der dritte Wert ist
heim + gast:3 + 1 = 4 Tore