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

Funkce swscanf () v C ++ čte široký znak z široké řetězcové vyrovnávací paměti.

Funkce swscanf () je definována v hlavičkovém souboru.

prototyp swscanf ()

 int swscanf (const wchar_t * buffer, const wchar_t * formát,…);

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

parametry swscanf ()

  • buffer: Ukazatel na vyrovnávací paměť širokého řetězce, ze které 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:
    • Znaky bez mezer s výjimkou%, z nichž každý spotřebuje jeden stejný znak ze vstupního proudu. Může způsobit selhání funkce, pokud další znak v proudu neporovnává stejné.
    • Znak mezery: Všechny následující znaky mezery jsou považovány za jeden znak mezery. Dále jsou ' n', ' t' a '' považována za stejná.
    • Specifikace převodu: 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, swscanf () 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é může swscanf () 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átory formátu
    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:
     Specifikátor% (*) (width) (length)
  • …: Další další argumenty pro příjem dat. Vyskytují se v pořadí podle specifikátoru formátu.

swscanf () Vrátí hodnotu

  • Funkce swscanf () vrací počet úspěšně přiřazených přijímajících argumentů.
  • Pokud dojde k selhání před přiřazením prvního přijímajícího argumentu, vrátí se EOF .

Příklad: Jak funguje funkce swscanf ()?

 #include #include int main() ( wchar_t buffer(100) = L"Theta u03b8"; wchar_t symbol, desc(10); setlocale(LC_ALL, "en_US.UTF-8"); swscanf(buffer, L"%ls %lc", desc, &symbol); wprintf(L"%lc is %ls", symbol, desc); return 0; )

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

 θ je Theta

Zajímavé články...