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

Funkce wscanf () v C ++ čte široký znak ze stdin.

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

prototyp wscanf ()

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

Funkce wscanf () čte data ze stdin a ukládá hodnoty do příslušných proměnných.

Parametry wscanf ()

  • 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, wscanf () 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í wscanf () spotřebovat při převodu určeném 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.

wscanf () Vrátí hodnotu

  • Funkce wscanf () 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 wscanf ()?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t ch; setlocale(LC_ALL, "en_US.UTF-8"); wprintf(L"Enter a wide character: "); wscanf(L"%lc",&ch); if (iswalnum(ch)) wcout << ch << L" is alphanumeric." << endl; else wcout << ch << L" is not alphanumeric." << endl; return 0; )

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

 Zadejte široký znak: ∭ ∭ není alfanumerický.

Zajímavé články...