Instrukcja printf jest głównym interfejsem do wysyłania danych na standardowe wyjście (stdout). W większości przypadków standardowym wyjściem jest ekran. Możesz przekierować go do pliku lub przekazać do innego polecenia, ale ucząc się C, zwykle patrzysz na tekst w terminalu.

Oto podstawowy program demonstrujący, jak to działa.

Zapisz ten kod w pliku add.c. Skompiluj go za pomocą polecenia gcc add.c -o add. Uruchom, wpisując ./add.

Wynik będzie następujący: 5 + 7 = 12.

Dowiedzmy się, co dzieje się pod maską.

Deklarowanie i przypisywanie zmiennych

Linia „int a, b, c;” deklaruje trzy zmienne całkowite. Liczby całkowite (int) przechowują tylko wartości całkowite. Brak części ułamkowej.

Następnie a = 5; inicjuje zmienną a wartością 5.

Następnie b = 7; ustawia zmienną b na 7.

W następnym wierszu wykonuje się operator przypisania: c = a + b;.

Komputer pobiera wartość z „a” (czyli 5). Dodaje do niego wartość z b (która wynosi 7). Wynikiem jest 12. Następnie wstawia tę nową wartość do zmiennej „c”.

Zmienna „c” jest teraz ustawiona na 12.

Jak printf dopasowuje symbole zastępcze

Instrukcja printf wypisuje ciąg “5 + 7 = 12”.

Spójrz na ciąg formatujący: "%d + %d = %d\n".

Symbole zastępcze %d pełnią funkcję przedziałów wartości. Jest ich tu trzech. Na końcu linii printf zobaczysz trzy nazwy zmiennych: a, b i c.

C dopasowuje je w kolejności.

Pierwsze %d pasuje do a. Zastępuje go 5.

Drugie %d odpowiada b. Zastępuje go 7.

Trzecie %d odpowiada c. Zastępuje go 12.

Znaki plus, znak równości i spacje są częścią samego ciągu formatującego. Są one automatycznie wstawiane pomiędzy instrukcjami %d dokładnie tak, jak je określiłeś w kodzie.

Wynik? Pusta linia tekstu na ekranie.

Dlaczego to jest ważne? Ponieważ formatowanie wyjściowe jest sposobem debugowania. Skąd będziesz wiedzieć, czy Twoja logika działa, jeśli nie widzisz liczb? „printf” ci powie.

Ale nie chodzi tylko o wnioski. Chodzi o kontrolę. Ty decydujesz, co widzi użytkownik. Ty decydujesz o sposobie prezentacji danych.

Co oznacza „\n” na końcu? To jest kanał liniowy. Bez tego następny wynik może zostać sklejony z bieżącym.

Wydaje się proste. To prawda. Ale to jest podstawa. Wszystko inne jest na tym zbudowane.

Możesz przekierować to wyjście. Można formatować liczby zmiennoprzecinkowe, ciągi znaków i wartości szesnastkowe. Ale musimy zacząć od tego miejsca.