Udostępnij za pośrednictwem


scanf — Znaki pola typu

Poniższe informacje mają zastosowanie do dowolnego z scanf rodziny funkcji, w tym bezpiecznej wersji, takich jak scanf_s.

type Znak jest jedynym formatem wymaganych pól; wydaje się po wszystkie pola opcjonalne format.type Charakter Określa, czy skojarzony argument jest interpretowana jako znak, ciąg lub liczba.

Wpisz znaki dla funkcji scanf

Znak

Typ wprowadzania danych

Typ argumentu

Rozmiar argumentu w zabezpieczonej wersji?

c

Znak.Gdy używana z scanf funkcje, określa znaków jednobajtowych; gdy używana z wscanf funkcje, określa znak dwubajtowy.Znaki odstępu, które są zazwyczaj pomijane są odczytywane, gdy c jest określony.Czytanie znaków jednobajtowych dalej non światło, %1s; Aby odczytać następnego non białe miejsca szerokości znaków, należy użyć %1ws.

Wskaźnik do char z scanf funkcje, wskaźnik do wchar_t używany z wscanf funkcji.

Wymagany.Rozmiar nie ma miejsca dla znakiem null.

C

Naprzeciwko wielkości znaków.Gdy używana z scanf funkcje, określa znak dwubajtowy; gdy używana z wscanf funkcje, określa znaków jednobajtowych.Znaki odstępu, które są zazwyczaj pomijane są odczytywane, gdy C jest określony.Czytanie znaków jednobajtowych dalej non światło, %1s; Aby odczytać następnego non białe miejsca szerokości znaków, należy użyć %1ws.

Wskaźnik do wchar_t z scanf funkcje, wskaźnik do char używany z wscanf funkcji.

Wymagany.Argument rozmiar nie ma miejsca dla znakiem null.

d

Liczba dziesiętna.

Wskaźnik do int.

Nie.

i

Liczba całkowitaSzesnastkowo, jeżeli ciąg wejściowy rozpoczyna się od "0 x" lub "0 X" ósemkową, jeżeli ciąg rozpoczyna się od "0", w przeciwnym razie dziesiętnej.

Wskaźnik do int.

Nie.

o

Całkowitą liczbę ósemkową.

Wskaźnik do int.

Nie.

u

Dziesiętna liczba całkowita bez znaku.

Pointer to unsignedint.

Nie.

x

Szesnastkowa liczba całkowita.

Wskaźnik do int.

Nie.

e, E, f, g, G

Wartość zmiennoprzecinkowa składający się z opcjonalnego znaku (+ lub -), serie jednej lub więcej cyfr dziesiętnych, zawierające separatora dziesiętnego i opcjonalny wykładnik ("e" lub "E") następuje wartość Opcjonalnie podpisana liczba całkowita.

Wskaźnik do float.

Nie.

n

Brak danych wejściowych odczytać z strumienia lub buforu.

Wskaźnik do int, w której jest przechowywana liczba znaków pomyślnie odczytu ze strumienia lub buforu do tego punktu w bieżące połączenie do scanf funkcje lub wscanf funkcji.

Nie.

s

Ciąg do pierwszego znaku spacji (miejsce, kartę lub nowego wiersza).Aby odczytać ciągów nie są rozdzielone spacjami, należy użyć nawiasy kwadratowe ([ ]), zgodnie z opisem w scanf — Specyfikacje szerokości.

Gdy używana z scanf funkcje, oznacza tablicy znaków jednobajtowych; gdy używana z wscanf funkcje, oznacza tablicy znaków wide.W obu przypadkach musi być wystarczająco duże, aby pole wejściowe plus kończącego znaku null, która jest automatycznie dołączane tablicy znaków.

Wymagany.Rozmiar zawiera miejsce znakiem null.

S

Przeciwieństwem rozmiar ciąg znaków do pierwszego znaku spacji (miejsce, kartę lub nowego wiersza).Aby odczytać ciągów nie są rozdzielone spacjami, należy użyć nawiasy kwadratowe ([ ]), zgodnie z opisem w scanf — Specyfikacje szerokości.

Gdy używana z scanf funkcje, oznacza tablicy znaków wide; gdy używana z wscanf funkcje, oznacza bajt — jednoznakowy tablicy.W obu przypadkach musi być wystarczająco duże, aby pole wejściowe plus kończącego znaku null, która jest automatycznie dołączane tablicy znaków.

Wymagany.Rozmiar zawiera miejsce znakiem null.

a i A specyfikatory (zobacz printf — Znaki pola typu) nie są dostępne z scanf.

Argumenty rozmiar, w razie potrzeby, powinny zostać przekazane bezpośrednio po argumencie, które stosują do listy wartości parametru.Na przykład następujący kod:

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

odczytuje ciąg o maksymalnej długości 10 do string1, a ciąg o maksymalnej długooci 8 do string2.Rozmiary buforów powinny być co najmniej jeden więcej niż specyfikacje szerokość od miejsca muszą być zarezerwowane dla wartości null terminator.

Ciąg formatu może obsługiwać wprowadzanie znaków jednobajtowych lub szerokie, niezależnie od tego, czy jest używana znaków jednobajtowych lub znakiem wersji funkcji.W efekcie znaków jednobajtowych lub szerokie, z scanf funkcji i wscanf funkcje, używają specyfikatorów formatu w następujący sposób.

Aby odczytać znak jako

Aby użyć tej funkcji

Z tych specyfikatory formatu

pojedynczy bajt

scanfFunkcje

c, hc lub hC

pojedynczy bajt

wscanfFunkcje

C, hc lub hC

szeroki

wscanfFunkcje

c, lc lub lC

szeroki

scanfFunkcje

C, lc lub lC

Aby skanować ciągi z scanf funkcje, i wscanf funkcje, należy użyć powyższej tabeli z specyfikatorze typu formatu s i S zamiast c i C.

Zobacz też

Informacje

scanf, _scanf_l, wscanf, _wscanf_l