C ++ scanf - standardní knihovna C ++

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 stdina 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 characterskromě% 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.
    Obecný formát specifikátoru formátu je tedy: %(*)(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

Zajímavé články...