Funkcje z rodziny scanf obsługują następujące formaty:
· d, i odczytuje liczbę całkowitą, której format jest taki sam jak oczekiwany format przy wywołaniu funkcji strtol z argumentem base równym odpowiednio 10 dla d lub 0 dla i, argument powinien być wskaźnikiem na int;
· o, u, x odczytuje liczbę całkowitą, której format jest taki sam jak oczekiwany format przy wywołaniu funkcji strtoul z argumentem base równym odpowiednio 8 dla o, 10 dla u lub 16 dla x, argument powinien być wskaźnikiem na unsigned int;
· a, e, f, g odczytuje liczbę rzeczywistą, nieskończoność lub NaN, których format jest taki sam jak oczekiwany przy wywołaniu funkcji strtod, argument powinien być wskaźnikiem na float;
· c odczytuje dokładnie tyle znaków ile określono w maksymalnym rozmiarze pola (domyślnie 1), argument powinien być wskaźnikiem na char;
· s odczytuje sekwencje znaków nie będących białymi znakami, argument powinien być wskaźnikiem na char;
· [ odczytuje niepusty ciąg znaków, z których każdy musi należeć do określonego zbioru, argument powinien być wskaźnikiem na char;
· p odczytuje sekwencje znaków zależną od implementacji odpowiadającą ciągowi wypisywanemu przez funkcję printf, gdy podano sekwencję %p, argument powinien być typu wskaźnik na wskaźnik na void;
· n nie odczytuje żadnych znaków, ale zamiast tego zapisuje do podanej zmiennej liczbę odczytanych do tej pory znaków, argument powinien być typu wskaźnik na int.
Słówko więcej o formacie [. Po otwierającym nawiasie następuje ciąg określający znaki jakie mogą występować w odczytanym napisie i kończy się on nawiasem zamykającym tj. ]. Znaki pomiędzy nawiasami (tzw. scanlist) określają możliwe znaki, chyba że pierwszym znakiem jest ^ - wówczas w odczytanym ciągu znaków mogą występować znaki nie występujące w scanlist. Jeżeli sekwencja zaczyna się od [] lub [^] to ten pierwszy nawias zamykający nie jest traktowany jako koniec sekwencji tylko jak zwykły znak. Jeżeli wewnątrz sekwencji występuje znak - (minus), który nie jest pierwszym lub drugim jeżeli pierwszym jest ^ ani ostatnim znakiem zachowanie jest zależne od implementacji.
Formaty A, E, F, G i X są również dopuszczalne i mają takie same działanie jak a, e, f, g i x.
Luki424