Funkce scanf () v C ++ se používá ke čtení dat ze stdin.
scanf () prototyp
int scanf (formát const char *, …);
scanf()
Funkce čte data z stdin
a uloží hodnoty do příslušných proměnných.
Je definován v hlavičkovém souboru.
parametry scanf ()
format
: Ukazatel na řetězec znaků s nulovým zakončením, který určuje, jak číst vstup. Skládá se ze specifikátorů formátu počínaje%.Řetězec formátu má následující části:
Non whitespace characters
kromě% každý z nich spotřebuje jeden stejný znak ze vstupního proudu. Může způsobit selhání funkce, pokud další znak v proudu neporovnává stejné.Whitespace character
: Se všemi následujícími prázdnými znaky se zachází jako s jedním prázdným znakem. Dále jsou ' n', ' t' a '' považována za stejná.Conversion specification
: Má následující formát:- Počáteční znak%, který určuje začátek
- Volitelný * zvaný znak potlačující přiřazení. Pokud je tento znak přítomen, funkce scanf () nepřiřadí výsledek žádnému přijímajícímu argumentu.
- Volitelné kladné celé číslo, které určuje maximální šířku pole. Určuje maximální počet znaků, které je skenování () povoleno spotřebovat při provádění převodu určeného aktuální specifikací převodu.
- Volitelný modifikátor délky určující velikost přijímajícího argumentu.
- Specifikátor formátu převodu.
Specifikátor formátu Popis % Odpovídá doslovnému% C Shoduje se s jedním nebo více znaky. Pokud je definována šířka, odpovídá přesně šířkovým znakům. s Porovnává po sobě jdoucí znaky bez mezer. Pokud je definována šířka, odpovídá přesně šířkovým znakům nebo dokud není nalezen první prázdný znak. (soubor) Odpovídá neprázdné posloupnosti znaků z dané sady znaků. Pokud je na začátku množiny, pak jsou všechny znaky, které nejsou v množině, porovnány. d Odpovídá desítkovému číslu. i Odpovídá celému číslu. Ó Odpovídá osmičkové celé číslo bez znaménka. X nebo x Porovná hexadecimální celé číslo bez znaménka. u Odpovídá desetinnému číslu bez znaménka. A nebo a, E nebo e, F nebo f, G nebo g Odpovídá číslu s plovoucí desetinnou čárkou. n Vrátí počet dosud přečtených znaků. p Odpovídá posloupnosti znaků definované implementací definující ukazatel.
%(*)(width)(length)specifier
- …: Další další argumenty pro příjem dat. Vyskytují se v pořadí podle specifikátoru formátu.
scanf () Vrátit hodnotu
- Pokud je úspěšná,
scanf()
funkce vrátí počet úspěšně přiřazených přijímajících argumentů. - Pokud dojde k selhání shody před přiřazením prvního přijímajícího argumentu, vrátí nulu.
- Pokud dojde k selhání vstupu před přiřazením prvního přijímajícího argumentu, vrátí se EOF.
Příklad: Jak funguje funkce scanf ()
#include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); scanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )
Při spuštění programu bude možný výstup:
Ahoj Tim, je ti 31 let