background image

Wejście/wyjście 

 

Odczyt danych z klawiatury (standardowego wejścia) oraz zapis na monitor (standardowe wyjście) w 

programie  w  C  realizowany  jest  za  pomocą  funkcji  systemowych  printf  i  scanf  znajdujących  się  w 

standardowej bibliotece wejścia/wyjścia, która jest domyślnie dołączana do każdego programu.  

Funkcja  printf,  która  umożliwia  wypisywanie  wyników  na  standardowym  wyjściu  może  mieć  wiele 

argumentów: 

printf(tekst_sterujący, arg1, arg2,…) 

 Pierwszy  argument  jest  tekstem  zawartym  między  znakami  ”  i zawiera  ciąg  znaków  mających  się 

pojawić  wprost  na  wyjściu  oraz  formaty  opisujące  sposoby  wypisywania  na  ekranie  kolejnych 

argumentów. Każdy opis pola (format)  rozpoczyna się  znakiem %  a kończy znakiem przekształcenia 

(np. d, f) i dotyczy kolejnego argumentu – liczba formatów powinna być równa liczbie argumentów 

pomniejszonej  o  1.  Poniższy  program  powoduje  wypisanie  na  ekranie  wartości  zmiennych  i,  j  typu 

integer oraz zmiennej a typu double. 

  int main(int argc, char *argv[]) 

  int i=1,j; 

  double a=0.1; 

  j=i+1; 

  printf("\ti=%d\n\tj=%d\n\ta=%f\n",i,j,a); 

 

Pierwszy parametr funkcji printf zawiera opisy pól odpowiadające wyprowadzanym zmiennym: %d – 

opisuje zmienną i, kolejny opis %d opisuje zmienną j, %f opisuje zmienną a.  Wartość każdej zmiennej 

pojawi  się  na  ekranie  w  nowej  linii  (\n)  po  odstępie  (\t)  poprzedzona  nazwą  zmiennej  i  znakiem 

równości: 

 

i=1 

 

j=2 

 

a=0.100000 

background image

Znaki przekształcenia zależą od typu zmiennej, i określają sposób, w jaki ma zostać wyświetlona: 

d – liczba dziesiętna całkowita 

f – liczba zmiennoprzecinkowa w notacji dziesiętnej (np. 15.78) 

e – liczba zmiennoprzecinkowa w notacji wykładniczej (np. 1.0e+10 oznacza 1 * 10

10

c – pojedynczy znak 

s  - ciąg znaków 

x – liczba szesnastkowa 

o – liczba ósemkowa 

Aby określić liczbę wyświetlanych cyfr znak przekształcenia należy poprzedzić kodem długości. Np.: 

%4d  

– oznacza liczbę całkowitą zapisana na co najmniej 4 pozycjach  (jeśli liczba znaków 

nie będzie wystarczająca pole zostanie powiększone) 

%10.4f  

–  oznacza  liczbę  rzeczywistą  zapisaną  na  10  pozycjach,  z  dokładnością  do  4  cyfr  po 

przecinku 

Do formatowania wyników w postaci tabelki może być przydatny znak – występujący bezpośrednio 

po symbolu %,  powodujący dosunięcie argumentu do początku pola (np. %-4d). 

Do wprowadzania danych służy funkcja scanf: 

scanf(tekst_sterujący, adres1, adres2,…) 

Odczytuje ona dane ze standardowego wejścia według formatu zadanego w pierwszym parametrze 

i zapisuje je pod adresami będącymi kolejnymi argumentami. tekst_sterujący zawiera jedynie 

kody  formatowania,  które  są  analogiczne  jak  w  funkcji  printf.  Adres  zmiennej,  która  ma  być 

wczytana uzyskuje się za pomocą operatora &. Poniższy program wyświetla zaproszenie do podania 

wartości zmiennej i oraz a, wczytuje dane i wyświetla ich wartości. 

 

 

 

background image

int main(int argc, char *argv[]) 

  int i; 

  double a; 

  printf("podaj i\n"); 

  scanf("%d",&i); 

  printf("a="); 

  scanf("%lf",&a); 

  printf("\ti=%d\n\ta=%-10.2e\n",i,a); 

 

A  oto  efekt  wykonania  programu  Czcionką  pogrubioną  zapisane  zostały  dane  podane  przez 

użytkownika: 

podaj i 

20 

a=1000000 

 

i=20 

 

a=1.00e+006