C ++ vwscanf () - štandardná knižnica C ++

Funkcia vwscanf () v C ++ sa používa na čítanie širokého znakového reťazca zo štandardného vstupu.

Funkcia vwscanf () je definovaná v hlavičkovom súbore.

prototyp vwscanf ()

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

Funkcia vwscanf () načíta údaje zo štandardného záznamu a uloží hodnoty do príslušných umiestnení, ktoré definuje vlist.

vwscanf () parametre

  • formát: Ukazovateľ na prázdny znakový reťazec zakončený nulou, ktorý určuje, ako sa má čítať vstup. Skladá sa zo špecifikátorov formátu začínajúcich na%.
    Reťazec formátu má nasledujúce časti:
    • Znaky bez medzier okrem%, pričom každý z nich spotrebuje jeden identický znak zo vstupného toku. Môže to spôsobiť zlyhanie funkcie, ak sa nasledujúci znak v streame neporovnáva rovnako.
    • Znak medzery: Všetky nasledujúce znaky medzery sa považujú za jeden znak medzery. Ďalej sa ' n', ' t' a '' považujú za rovnaké.
    • Špecifikácia prevodu: Má nasledujúci formát:
      • Počiatočný znak%, ktorý určuje začiatok
      • Voliteľný * znak, ktorý sa nazýva znak potlačujúci priradenie. Ak je tento znak prítomný, vwscanf () nepriradí výsledok žiadnemu prijímaciemu argumentu.
      • Voliteľné kladné celé číslo, ktoré určuje maximálnu šírku poľa. Určuje maximálny počet znakov, ktoré môže vwscanf () spotrebovať pri vykonávaní prevodu špecifikovaného v aktuálnej špecifikácii prevodu.
      • Voliteľný modifikátor dĺžky určujúci veľkosť prijímacieho argumentu.
      • Špecifikátor formátu prevodu.
    Špecifikátory formátu
    Špecifikátor formátu Popis
    % Zhoduje sa s literálnym%
    c Zhoduje sa s jedným alebo viacerými znakmi. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky.
    s Zhoda po sebe idúcich znakov bez medzier. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky alebo kým sa nenájde prvý medzera.
    (sada) Zhoduje sa s neprázdnou sekvenciou znakov z danej sady znakov. Pokiaľ je na začiatku množiny, potom sa všetky znaky, ktoré nie sú v množine, zhodujú.
    d Zhoduje sa s desatinným celým číslom.
    i Zhoduje sa s celým číslom.
    o Zhoduje sa s nepodpísaným osmičkovým celým číslom.
    X alebo x Zhoduje sa s hexadecimálnym celým číslom bez znamienka.
    u Zhoduje sa s desatinným celým číslom bez znamienka.
    A alebo a, E alebo e, F alebo f, G alebo g Zhoduje sa s plávajúcou desatinnou čiarkou.
    n Vráti počet doteraz prečítaných znakov.
    p Zhoduje sa s postupnosťou znakov definovaných implementáciou, ktorá definuje ukazovateľ.

    Všeobecný formát špecifikátora formátu je teda:
     špecifikátor% (*) (šírka) (dĺžka)
  • vlist: Zoznam argumentov pre príjem vstupov.

vwscanf () Vrátiť hodnotu

  • Ak je úspešná, funkcia vwscanf () vráti počet úspešne prečítaných argumentov.
  • Pri zlyhaní sa vráti EOF.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude možný výstup:

Ako sa voláš? Götz Dobrý deň, Götz

Zaujímavé články...