Spisu treści:
Definicja - Co oznacza Scanf?
W języku programowania C scanf jest funkcją, która odczytuje sformatowane dane ze standardowego wejścia (tzn. Standardowego strumienia wejściowego, którym zwykle jest klawiatura, chyba że następuje przekierowanie), a następnie zapisuje wyniki w podanych argumentach.
Ta funkcja należy do rodziny funkcji, które mają tę samą funkcjonalność, ale różnią się jedynie źródłem danych. Na przykład fscanf pobiera dane wejściowe ze strumienia plików, a sscanf pobiera dane wejściowe z ciągu znaków.
Techopedia wyjaśnia Scanf
Funkcja scanf ma następujący prototyp / podpis:
int scanf (format const char *, …);
gdzie
- int (liczba całkowita) jest typem zwracanym
- format to ciąg znaków, który zawiera specyfikatory typu (patrz poniżej)
- „…” (elipsa) wskazuje, że funkcja przyjmuje zmienną liczbę argumentów; każdy argument musi być adresem pamięci, na który zapisywany jest przekonwertowany wynik
Prosty specyfikator typu składa się z symbolu procentu (%) i znaku alfa wskazującego typ. Poniżej znajduje się kilka przykładów specyfikatorów typów rozpoznawanych przez scanf:
- % c - postać
- % d - Liczba całkowita ze znakiem
- % x - Liczba całkowita bez znaku w formacie szesnastkowym
- % f - zmiennoprzecinkowy
- % s - ciąg
Funkcja działa, odczytując dane wejściowe ze standardowego strumienia wejściowego, a następnie skanuje zawartość „formatu” w poszukiwaniu dowolnego specyfikatora formatu, próbując dopasować oba. Po pomyślnym zakończeniu funkcja zapisuje wynik w przekazanych argumentach.
Na przykład, jeśli wywołanie funkcji to
scanf („% c% d”, & var1 i & var2);
a użytkownik wpisze „a1”, funkcja zapisze „a” w „var1” i „1” w „var2”. Jeśli jednak wywoływana jest funkcja
scanf („% x” i & var);
to samo wejście zostanie odczytane jako liczba szesnastkowa „a1”, która jest 161 w systemie dziesiętnym.
Funkcja zwraca następującą wartość:
- > 0 - Liczba elementów przekonwertowanych i przypisanych pomyślnie.
- 0 - Nie przypisano żadnego elementu.
- <0 - Napotkano błąd odczytu lub osiągnięto koniec pliku (EOF) przed dokonaniem jakiegokolwiek przypisania.
