C ++ sscanf () - standardní knihovna C ++

Funkce sscanf () v C ++ se používá ke čtení dat z vyrovnávací paměti řetězců.

prototyp sscanf ()

 int sscanf (const char * buffer, const char * formát,…);

sscanf()Funkce čte data čte data z vyrovnávací paměti a ukládá hodnoty do příslušných proměnných.

Je definován v hlavičkovém souboru.

Parametry sscanf ()

  • buffer: Ukazatel na řetězec znaků s nulovým zakončením, ze kterého se mají číst data.
  • 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, fscanf () 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é smí fscanf () 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.

sscanf () Vrátí hodnotu

  • Pokud je úspěšná, sscanf()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 sscanf ()

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

Při spuštění programu bude možný výstup:

 Křestní jméno: Dennis Příjmení: Ritchie

Zajímavé články...