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

Funkce vwscanf () v C ++ se používá ke čtení širokopásmového řetězce ze stdin.

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

prototyp vwscanf ()

 int vwscanf (formát const wchar_t *, va_list vlist);

Funkce vwscanf () čte data ze stdin a ukládá hodnoty do příslušných umístění definovaných vlist.

Parametry vwscanf ()

  • 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, vwscanf () 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 vwscanf () 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á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)
  • vlist: Seznam argumentů pro příjem vstupů.

vwscanf () Vrátit hodnotu

  • Pokud bude úspěšná, vrátí funkce vwscanf () počet úspěšně přečtených argumentů.
  • Při selhání se vrátí EOF.

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

 #include #include #include void read( const wchar_t* format,… ) ( va_list args; va_start (args, format); vwscanf (format, args); va_end (args); ) int main () ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t name(50); wprintf(L"What is your name? "); read(L" %ls", name); wprintf(L"Hello %ls", name); return 0; )

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

Jak se jmenuješ? Götz Dobrý den, Götz

Zajímavé články...