Sdílet prostřednictvím


Znaky pole typu scanf

Následující informace se vztahují na jakoukoli scanf řady funkcí, včetně zabezpečené verze, jako například scanf_s.

type Znak je jediný požadovaný formát pole; Zobrazí se po všech volitelný formát polí.type Znak určuje, zda přidružené argumentu je interpretován jako řetězec znaků nebo číslo.

Zadejte znaky pro funkce scanf

Znak

Typ zadání

Typ argumentu

Velikost argument v zabezpečenou verzí?

c

Znak.Při použití s scanf funkce, určuje jednobajtových znaků; Při použití s wscanf funkce, určuje širokého znaku.Prázdné znaky, které jsou obvykle vynecháno při čtení c je zadán.Číst další znak jednobajtové non prázdné místo, použijte %1s; Číst další non prázdný široký znak, pomocí %1ws.

Ukazatel na char s scanf funkce, ukazatel na wchar_t s wscanf funkce.

Požadováno.Velikost neobsahuje pole null zakončení.

C

Naproti velikost znaků.Při použití s scanf funkce, určuje širokého znaku; Při použití s wscanf funkce, určuje jednobajtových znaků.Prázdné znaky, které jsou obvykle vynecháno při čtení C je zadán.Číst další znak jednobajtové non prázdné místo, použijte %1s; Číst další non prázdný široký znak, pomocí %1ws.

Ukazatel na wchar_t s scanf funkce, ukazatel na char s wscanf funkce.

Požadováno.Velikost argument neobsahuje pole 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é řetězec začíná "0", jinak desetinné číslo.

Ukazatel na int.

Ne.

o

Osmičkové číslo.

Ukazatel na int.

Ne.

u

Desítkové celé číslo bez znaménka.

Pointer to unsignedint.

Ne.

x

Šestnáctkové číslo.

Ukazatel na int.

Ne.

e, E, f, g, G

S plovoucí desetinnou čárkou, skládající se z nepovinné znaménko (+ nebo -), sérii jedné nebo více desítkových číslic obsahujících desetinnou čárku a volitelné exponent ("e" nebo "E") a volitelně podepsané celočíselnou hodnotu.

Ukazatel na float.

Ne.

n

Žádný vstup čtení z datového proudu nebo vyrovnávací paměti.

Ukazatel na int, do které uložené počet znaků je úspěšně čtení z datového proudu nebo vyrovnávací paměti až do tohoto bodu v aktuální volání scanf funkce nebo wscanf funkce.

Ne.

s

Řetězec do první prázdné znaky (mezery, kartu nebo nový řádek).Čtení řetězců, které nejsou odděleny znaky, použijte sadu hranaté závorky ([ ]), jak je popsáno v Specifikace šířky scanf.

Při použití s scanf funkce, označuje pole jednobajtových znaků; Při použití s wscanf funkce, označuje pole širokého znaku.V obou případech musí být dostatečně velká pro vstupní pole plus ukončující znak null, která je automaticky přidána pole znaků.

Požadováno.Velikost zahrnuje prostor pro null zakončení.

S

Naopak velikost řetězec znaků do první prázdné znaky (mezery, kartu nebo nový řádek).Čtení řetězců, které nejsou odděleny znaky, použijte sadu hranaté závorky ([ ]), jak je popsáno v Specifikace šířky scanf.

Při použití s scanf funkce, označuje pole širokého znaku; Při použití s wscanf funkce, znamená jeden bajt – znak pole.V obou případech musí být dostatečně velká pro vstupní pole plus ukončující znak null, která je automaticky přidána pole znaků.

Požadováno.Velikost zahrnuje prostor pro null zakončení.

a a A specifikátory (viz Znaky pole typu printf) nejsou k dispozici s scanf.

Velikost argumenty, v případě potřeby by měly 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 musí být, že musí být alespoň jeden větší než šířka specifikace od místa vyhrazena pro null zakončení.

Řetězec formátu může zpracovávat vstupní znak jednobajtové a široký bez ohledu na to, zda je použit jednobajtových znaků nebo širokého znaku verze funkce.Tedy číst jednobajtových nebo široké znaky s scanf funkce a wscanf funkce a použít specifikátory formátu takto.

Čtení znaků jako

Pomocí této funkce

Se tyto specifikátory formátu

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

Prohledávání řetězce s scanf funkce, a wscanf funkce, pomocí výše uvedené tabulky typ specifikátoru formátu s a S místo c a C.

Viz také

Referenční dokumentace

scanf, _scanf_l, wscanf, _wscanf_l