Skip to content
Na tej stronie

Funkcje printf i scanf w języku C, formatowanie wejścia i wyjścia

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.

Funkcja printf

Funkcja printf służy do wyświetlania tekstu do wyjścia standardowego.

Jako pierwszy argument funkcja ta przyjmuje tekst formatujący, czyli tekst, który jest instrukcją, w jaki sposób printf ma wyświetlić zmienne podane w argumentach dodatkowych.

W prostych słowach, printf wyświetla dany tekst, który może również zawierać wartości zmiennych przekazanych w kolejnych argumentach.

c
#include <stdio.h>
void main() {
  const char* adresat = "Parzychedu";
  printf("Witaj %s\n", adresat); 
}
#include <stdio.h>
void main() {
  const char* adresat = "Parzychedu";
  printf("Witaj %s\n", adresat); 
}
Witaj Parzychedu
Witaj Parzychedu

Tekst formatujący

Tekst formatujący jest tekstem, który może zawierać sekwencje specjalne, w miejce których zostanie wykonana odpowiednia operacja.

Wyświetlenie wartości zmiennej

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.
SekwencjaTyp zmiennej
%iLiczba całkowita albo zmiennoprzecinkowa
%sNapis (ciąg znaków)

Sekwencja %% wstawia pojedynczy znak %.

Znaki specjalne

Przypominamy, że w języku C wstawić możemy znak specjalny poprzez jedną z poniższych sekwencji wewnątrz każdego tekstu (literału).

SekwencjaZnak specjalny
\nZnak nowej linii
\tTabulator
\\Ukośnik wsteczny \
\"Cudzysłów podwójny "
\'Cudzysłow pojedynczy \
\0Bajt 0x00, inaczej znak zwany NUL

W miejsce sekwencji zostanie wstawiony znak specjalny – specjalny dlatego, że jest trudny do napisania za pomocą standardowej klawiatury.

Bezpieczeństwo funkcji printf

Nie należy przekazywać wartości zmiennych bezpośrednio jako tekst formatujący. Funkcje z rodziny printf używają metody wstawiania poprzez użycie tekstu formatującego, aby zapobiec niepożądanemu działaniu programu.

c
#include <stdio.h>
void main() {
  const char* powitanie = "Witaj Parzychedu";
  
  printf(powitanie); 
  printf("%s\n", powitanie); 

}
#include <stdio.h>
void main() {
  const char* powitanie = "Witaj Parzychedu";
  
  printf(powitanie); 
  printf("%s\n", powitanie); 

}

Informacja

Powyższe ostrzeżenie dotyczy szczególnie zmiennych, które mogą być kontrolowane przez użytkownika.

Funkcja scanf

Ta część strony została oznaczona, jakoby była w trakcie konstrukcji. To oznacza, że treść w miejscu tego komunikatu zostanie uzupełniona w najbliższym czasie.