Ponad dwa tygodnie temu poświęciłem artykuł na temat funkcji "printf". Ze względu na mocno ograniczony czas, pozwólcie że teraz napiszę to samo tylko o funkcji "scanf" w języku C, która również jest częścią standardowej obsługi wejścia-wyjścia. Jeśli jest jakiś problem z określeniem specyfikatora formatu, po prostu zjedźcie na dół i popatrzcie na tabelkę. Być może, że właśnie w niej znajduje się odpowiedź na Wasze pytanie.

KRÓTKI OPIS FUNKCJI "SCANF" W JĘZYKU C

Tytułowa metoda umożliwia przekazywanie wartości do zmiennych w postaci wprowadzanych znaków z klawiatury (tak naprawdę to dotyczy strumienia wejściowego "stdin"). Przy użyciu adresu zmiennej (z wyjątkiem tablic i łańcuchów znaków) następuje skonwertowanie wartości na odpowiedni typ. Oczywiście zanim to nastąpi, wprowadzony ciąg znaków musi być jeszcze uprzednio zweryfikowany, aby nie doszło do sprzeczności. Jest często wykorzystywana w pętli "while" dla wprowadzania wielu wartości podczas jednego działania. Dzięki temu, że zwraca wartość liczbową oznaczającą liczbę prawidłowo odczytanych ciągów, doskonale pasuje do osadzania w warunek dla zapewnienia walidacji danych.

Funkcja "scanf" w języku C

Funkcja "scanf" w języku C pobiera od strumienia wejściowego dane o konkretnym typie zwracając uwagę na prawidłowość.

SPECYFIKATORY FORMATU FUNKCJI

Tak jak w poprzednim wpisie tego typu, artykuł ten nie jest dla początkujących w celu tłumaczenia co to jest i jak to wykorzystywać. Taka "ściągawka" dla wszystkich, którzy mają problemy z przypisaniem odpowiedniego formatowania dla funkcji "scanf".

Specyfikator Znaczenie
%hd liczba całkowita w systemie dziesiętnym ze znakiem (signed short int)
%hu liczba całkowita w systemie dziesiętnym bez znaku (unsigned short int)
%d / %i liczba całkowita w systemie dziesiętnym ze znakiem (signed int)
%u liczba całkowita w systemie dziesiętnym bez znaku (unsigned int)
%ld liczba całkowita w systemie dziesiętnym ze znakiem (signed long int)
%lu liczba całkowita w systemie dziesiętnym bez znaku (unsigned long int)
%lld liczba całkowita w systemie dziesiętnym ze znakiem (signed long long int)
%llu liczba całkowita w systemie dziesiętnym bez znaku (unsigned long long int)
%o liczba całkowita w systemie oktalnym (ósemkowym)
%x / %X liczba całkowita w systemie heksadecymalnym (szesnastkowym)
%f liczba zmiennoprzecinkowa w systemie dziesiętnym (float)
%lf liczba zmiennoprzecinkowa w systemie dziesiętnym (double)
%Lf liczba zmiennoprzecinkowa w systemie dziesiętnym (long double)
%c pojedynczy znak
%s łańcuch znaków bez spacji
%p wskaźnik jako adres (*)

Koniec o funkcji "scanf" w języku C i jej specyfikatorach.

PODOBNE ARTYKUŁY