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

Funkce fwscanf () v C ++ čte široký znak ze streamu souborů.

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

prototyp fwscanf ()

 int fwscanf (FILE * stream, formát const wchar_t *,…);

Funkce fwscanf () čte data z proudu proudu souborů a ukládá hodnoty do příslušných proměnných.

fwscanf () parametry

  • stream: Stream vstupního souboru, 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:
    • 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, fwscanf () 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í fwscanf () 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.

fwscanf () Vrátí hodnotu

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

 #include #include #include #include int main() ( FILE *fp = fopen("example.txt","w+"); wchar_t str(10), ch; setlocale(LC_ALL, "en_US.UTF-8"); fwprintf(fp, L"%ls %lc", L"Summation", L'u2211'); fwprintf(fp, L"%ls %lc", L"Integral", L'u222b'); rewind(fp); while((fwscanf(fp, L"%ls %lc", str, &ch))!=EOF) ( wprintf(L"%lc is %ls", ch, str); ) fclose(fp); return 0; )

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

 ∑ je součet ∫ je integrální

Zajímavé články...