scanf znaky pole Typ
Následující informace platí pro libovolné scanf řady funkcí, včetně zabezpečené verze jako scanf_s.
type Znak je jediný požadovaný formát pole; Zobrazí se po volitelný formát pole.type Znak určuje, zda argument přidružené interpretována jako číslo, řetězec nebo znak.
Typ znaků pro funkce scanf
Znak |
Typ vstupu očekáván |
Typ argumentu |
Velikost argument v zabezpečené verze? |
---|---|---|---|
c |
Znak.Při použití s scanf funkce, určuje jednobajtových znaků; Při použití s wscanf funkce, určuje šířku znaku.Při čtení prázdné znaky, které jsou obvykle vynechány c je určena.Číst další místa non–white jednobajtových znaků, použijte %1s; Číst další non–white místo široký znak pomocí %1ws. |
Ukazatel na char při použití s scanf funkce, ukazatel na wchar_t při použití s wscanf funkcí. |
Povinné.Velikost nezahrnuje místo null zakončení. |
C |
Opačné velikost znaků.Při použití s scanf funkce, určuje znaků; Při použití s wscanf funkce, určuje jednobajtových znaků.Při čtení prázdné znaky, které jsou obvykle vynechány C je určena.Číst další místa non–white jednobajtových znaků, použijte %1s; Číst další non–white místo široký znak pomocí %1ws. |
Ukazatel na wchar_t při použití s scanf funkce, ukazatel na char při použití s wscanf funkcí. |
Povinné.Argument velikost nezahrnuje místo null zakončení. |
d |
Desítkové celé číslo. |
Ukazatel na int. |
Ne. |
i |
Celé číslo.Šestnáctkové, pokud vstupní řetězec začíná "0 x" nebo "0 X", osmičkové Pokud řetězec začíná "0", jinak desítkové. |
Ukazatel na int. |
Ne. |
o |
Číslo na osmičkové. |
Ukazatel na int. |
Ne. |
u |
Desítkové číslo bez znaménka. |
Pointer to unsignedint. |
Ne. |
x |
Šestnáctkové číslo. |
Ukazatel na int. |
Ne. |
e, E, f, g, G |
Desetinná hodnota sestávající z nepovinné znaménko (+ nebo –), sérii jedné nebo více čísel v desítkové soustavě obsahující desetinné čárky a volitelné exponent ("e" nebo "E"), následuje volitelně podepsané celočíselnou hodnotu. |
Ukazatel na float. |
Ne. |
n |
Žádný vstup číst z proudu nebo vyrovnávací paměti. |
Ukazatel na int, do které uložené počet znaků je úspěšně číst z proudu nebo vyrovnávací paměti až do tohoto bodu v aktuální volání scanf funkce nebo wscanf funkcí. |
Ne. |
s |
Řetězec až do prvního znaku prázdného místa (místo kartu nebo nový řádek).Chcete-li číst řetězce nejsou odděleny znaky použít sadu hranatých závorek ([ ]), jak je popsáno v Šířka specifikace scanf. |
Při použití s scanf funkce, označuje pole jednobajtových znaků; Při použití s wscanf funkce, které označuje znak wide array.V obou případech musí být dostatečně velké pro vstupní pole plus ukončujícím znakem null je automaticky připojeno pole znaků. |
Povinné.Velikost zahrnuje místo null zakončení. |
S |
Velikost opak řetězec znaků do prvního znaku prázdného místa (místo kartu nebo nový řádek).Chcete-li číst řetězce nejsou odděleny znaky použít sadu hranatých závorek ([ ]), jak je popsáno v Šířka specifikace scanf. |
Při použití s scanf funkce, které označuje znak wide array; Při použití s wscanf funkce, znamená jeden byte–character pole.V obou případech musí být dostatečně velké pro vstupní pole plus ukončujícím znakem null je automaticky připojeno pole znaků. |
Povinné.Velikost zahrnuje místo null zakončení. |
a a A specifikátory (viz printf znaky pole Typ) nejsou k dispozici s scanf.
Velikost argumenty, v případě potřeby mají být předány v seznamu parametrů bezprostředně následující argument, na něž se vztahují.Například následující kód:
char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);
načte řetězec o maximální délce 10 do string1a řetězec s maximální délkou 8 do string2.Velikost vyrovnávací paměti by měly být alespoň jeden větší než šířka specifikace od místa musí být vyhrazena pro ukončovací znak null.
Řetězec formátu může zpracovávat vstupní znak jednobajtové nebo široký bez ohledu na to, zda je použit jednobajtových znaků nebo znaků wide verzi funkce.Tedy číst znaky jednobajtové nebo široký s scanf funkce a wscanf funkce, použít formát specifikátory takto.
Čtení znak jako |
Pomocí této funkce |
S těmito specifikátory formát |
---|---|---|
jeden bajt |
scanffunkce |
c, hc nebo hC. |
jeden bajt |
wscanffunkce |
C, hc nebo hC. |
široký |
wscanffunkce |
c, lc nebo lC. |
široký |
scanffunkce |
C, lc nebo lC. |
Skenování řetězce s scanf funkce, a wscanf funkce, použijte výše uvedené tabulky s formátu-specifikátorech typu s a S namísto c a C.