Operacje wejścia-wyjścia (styl C)
Funkcje printf, scanf

Jako przykład funkcji o nieokreślonej licznie argumentów przedstawimy funkcje biblioteczne printf, scanf. Funkcje te realizują niskopoziomowe (a więc szybkie) operacje wejścia-wyjścia. Są ona dostępne po włączeniu pliku nagłówkowego cstdio.

Pierwszym argumentem printf jest napis, który może zawierać znaki sterujące, określające sposób interpretowania argumentów z listy argumentów o zmiennej długości. Najprościej zilustrować to na przykładzie

char towar[] = "chleb";
int ilosc=30;
float cena=2.99;
printf("Towar %s, ilosc %d, cena %f",towar,ilosc, cena);

Funkcja printf wypisuje na standardowe wyjście podany napis jednocześnie analizując jego zawartość. Znaki rozpoczynającej się od % to znaki specjalne. Każde wystąpienie takiego znaku będzie zastąpione kolejnym argumentem z listy podanym w czasie wywołania. Sposób interpretacji określają kody (litery): %s dla napisu, %d dla liczby całkowitej, %f dla liczby zmiennoprzecinkowej.

Szczegółowa dokumentacja funkcji jest bardzo długa - można ją znaleźć na przykład tutaj.

Funkcja scanf to funkcja realizująca niskopoziomowe czytanie. Jej format odpowiada funkcji printf - pierwszym argumentem jest napis, w którym kodujemy co chcemy przeczytać, kolejne argumenty to adresy obiektu, w których zostaną umieszczone przeczytane dane.

int i;
float liczba;
char bufor[100];
scanf("%d%f%s",&i,&liczba,bufor);

Przykład - funkcje wejścia-wyjścia

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak