Více hodnot v jednom printf
Zatím každý printf vypisoval jednu hodnotu. Jeden printf jich ale zvládne víc. Pro každou hodnotu napište do textu jedno %d a samotné hodnoty pak uveďte za text, oddělené čárkami:
int jablka = 4;
int hrusky = 3;
printf("%d jablka a %d hrušky\n", jablka, hrusky);
printf("%d + %d = %d\n", jablka, hrusky, jablka + hrusky);Vypíše:
4 jablka a 3 hrušky
4 + 3 = 7Jak už víte z minulé lekce, text v uvozovkách je formátovací řetězec: určuje, jak bude řádek vypadat. Každé %d v něm je formátovací značka, tedy místo pro jednu hodnotu. printf je vyplňuje popořadě: první hodnota přijde na místo prvního %d, druhá na místo druhého a tak dál. Hodnotou může být proměnná, číslo nebo celý výpočet, třeba jablka + hrusky.
Na pořadí hodnot proto záleží. Když je prohodíte, prohodí se i ve výpisu:
int domaci = 2;
int hoste = 1;
printf("Domácí %d, hosté %d\n", hoste, domaci);Vypíše:
Domácí 1, hosté 2I mezery patří do formátovacího řetězce. printf ho vypíše přesně tak, jak je napsaný, takže "Skóre:%d" vypíše Skóre:3 a "Skóre: %d" vypíše Skóre: 3.
Počet formátovacích značek musí odpovídat počtu hodnot. Když nějaká hodnota chybí, překladač ohlásí more '%' conversions than data arguments, tedy že značek je víc než hodnot. Když je naopak jedna hodnota navíc, ohlásí data argument not used by format string.
Jak psát:
Pokyny
Pod to vypište skóre jedním printf se dvěma %d. Čísla vezměte z proměnných domaci a hoste:
Skóre: 3:1Na další řádek vypište tento text. Použijte jeden printf se třemi hodnotami: minuta, domaci a hoste. Čísla do textu nepište:
Po 90 minutách: 3:1Nakonec vypište počet gólů jako výpočet. Třetí hodnotou bude domaci + hoste:
3 + 1 = 4 gólyZačněte programovat zdarma
3/11