Udostępnij za pośrednictwem


scanf znaki pola typu

Poniższe informacje mają zastosowanie do wszelkich scanf rodziny funkcji, w tym bezpiecznej wersji, takie jak scanf_s.

type Znak jest wymagany tylko format pola; wydaje się po polach dowolnego formatu opcjonalne.type Znak Określa, czy skojarzony argument jest interpretowana jako znak, ciąg lub liczba.

Wpisz znaki w funkcji scanf

Znak

Typ wprowadzania danych

Typ argumentu

Rozmiar argumentu w bezpiecznej wersji?

c

Znak.Gdy używana z scanf funkcje, określa znaków jednobajtowych; gdy używana z wscanf funkcje, określa szerokich znaków.Znaki spacji, które są zazwyczaj pomijane są odczytywane, gdy c jest określony.Aby odczytać następnego znaków jednobajtowych miejsca non–white, należy użyć %1s; Aby odczytać następnego non–white-space szerokości znaków, należy użyć %1ws.

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

Wymagane.Rozmiar nie ma miejsca na null terminator.

C

Naprzeciwko rozmiar znaku.Gdy używana z scanf funkcje, określa szerokich znaków; gdy używana z wscanf funkcje, określa znaków jednobajtowych.Znaki spacji, które są zazwyczaj pomijane są odczytywane, gdy C jest określony.Aby odczytać następnego znaków jednobajtowych miejsca non–white, należy użyć %1s; Aby odczytać następnego non–white-space szerokości znaków, należy użyć %1ws.

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

Wymagane.Argument rozmiar nie ma miejsca na null terminator.

d

Liczba dziesiętna.

Wskaźnik, aby int.

Nie.

i

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

Wskaźnik, aby int.

Nie.

o

Ósemkową liczby całkowitej.

Wskaźnik, aby int.

Nie.

u

Dziesiętna liczba całkowita bez znaku.

Pointer to unsignedint.

Nie.

x

Liczba całkowita, szesnastkowym.

Wskaźnik, aby int.

Nie.

e, E, f, g, G

Wartość zmiennoprzecinkowa składający się z opcjonalnych znak (+ lub –), seria jednego lub więcej cyfr dziesiętnych, zawierające dziesiętnym i opcjonalne wykładnik ("e" lub "E") następuje wartość całkowitą opcjonalnie podpisane.

Wskaźnik, aby float.

Nie.

n

Brak danych wejściowych odczytu ze strumienia lub buforu.

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

Nie.

s

Ciąg do pierwszego znaku spacji (miejsca, tab lub nowego wiersza).Aby odczytać ciągi nie są rozdzielone spacjami, należy użyć zestawu nawiasy kwadratowe ([ ]), zgodnie z opisem zamieszczonym w scanf Specyfikacja szerokość.

Gdy używana z scanf funkcje, oznacza tablicy znaków jednobajtowych; gdy używana z wscanf funkcje, oznacza znak całej tablicy.W każdym przypadku muszą być wystarczająco duże, aby pole wejściowe plus kończącego znaku null, która jest automatycznie dołączany tablicy znaków.

Wymagane.Rozmiar zawiera miejsce na null terminator.

S

Rozmiar przeciwieństwo ciąg znaków, do pierwszego znaku spacji (miejsca, tab lub nowego wiersza).Aby odczytać ciągi nie są rozdzielone spacjami, należy użyć zestawu nawiasy kwadratowe ([ ]), zgodnie z opisem zamieszczonym w scanf Specyfikacja szerokość.

Gdy używana z scanf funkcje, oznacza tablicy szerokich znaków; gdy używana z wscanf funkcje, a oznacza byte–character pojedynczej tablicy.W każdym przypadku muszą być wystarczająco duże, aby pole wejściowe plus kończącego znaku null, która jest automatycznie dołączany tablicy znaków.

Wymagane.Rozmiar zawiera miejsce na null terminator.

a i A Specyfikatory (zobacz printf wpisz znaki pola) nie są dostępne z scanf.

Argumenty rozmiar, jeśli jest to wymagane, powinien zostać przekazany niezwłocznie po argumentu, które stosują do listy wartości parametru.Na przykład poniższy kod:

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

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

Ciąg formatu, który może obsłużyć wprowadzanie znaków jednobajtowych lub szerokie, niezależnie od tego, czy jest używany znaków jednobajtowych lub szerokich znaków wersję funkcji.W ten sposób odczytać znaki jednobajtowe lub szerokie, z scanf funkcje i wscanf funkcji, używają specyfikatorów format w następujący sposób.

Aby odczytać znak jako

Aby użyć tej funkcji

Z tych Specyfikatory format

pojedynczy bajt

scanfFunkcje

c, hc, orhC

pojedynczy bajt

wscanfFunkcje

C, hc, orhC

szeroki

wscanfFunkcje

c, lc, orlC

szeroki

scanfFunkcje

C, lc, orlC

Skanowanie ciągi z scanf funkcji, i wscanf funkcji, użyj powyższej tabeli w specyfikatorze typu formatu s i S zamiast c i C.

Zobacz też

Informacje

scanf, _scanf_l, wscanf, _wscanf_l