C ++ vwscanf () - C ++ Standardbibliotek

Funktionen vwscanf () i C ++ bruges til at læse bred karakterstreng fra stdin.

Funktionen vwscanf () er defineret i headerfilen.

vwscanf () prototype

 int vwscanf (const wchar_t * format, va_list vlist);

Funktionen vwscanf () læser data fra stdin og gemmer værdierne på de respektive placeringer som defineret af vlist.

vwscanf () Parametre

  • format: Markør til en null-termineret bred tegnstreng, der specificerer, hvordan input skal læses. Den består af formatspecifikationer, der starter med%.
    Formatstrengen har følgende dele:
    • Ikke-mellemrumstegn undtagen%, som hver bruger et identisk tegn fra inputstrømmen. Det kan få funktionen til at mislykkes, hvis det næste tegn på streamen ikke sammenligner det samme.
    • Hvidt mellemrumstegn: Alle på hinanden følgende mellemrumstegn behandles som et enkelt mellemrumstegn. Yderligere betragtes ' n', ' t' og '' som de samme.
    • Konverteringsspecifikation: Den følger følgende format:
      • Indledende% tegn, der angiver begyndelsen
      • En valgfri * kaldet tildelingsundertrykkende karakter. Hvis dette tegn er til stede, tildeler vwscanf () ikke resultatet til noget modtagende argument.
      • Et valgfrit positivt heltal, der angiver den maksimale feltbredde. Det specificerer det maksimale antal tegn, som vwscanf () har tilladelse til at forbruge, når de foretager den konvertering, der er specificeret af den aktuelle konverteringsspecifikation.
      • En valgfri længdemodifikator, der angiver størrelsen på det modtagende argument.
      • En konverteringsformat specificerer.
    Formatspecifikatorer
    Format Specifier Beskrivelse
    % Matcher den bogstavelige%
    c Matcher et enkelt tegn eller flere tegn. Hvis bredde er defineret, matcher den nøjagtigt bredde.
    s Matcher på hinanden følgende ikke-mellemrumstegn. Hvis bredde er defineret, matcher den nøjagtigt bredde tegn, eller indtil første hvide mellemrum er fundet.
    (sæt) Matcher en ikke-tom række af tegn fra det givne sæt tegn. Hvis er til stede i begyndelsen af ​​sættet, matches alle de tegn, der ikke er i sættet.
    d Matcher et decimaltal.
    jeg Matcher et heltal.
    o Matcher et usigneret oktalt heltal.
    X eller x Matcher et usigneret hexadecimalt heltal.
    u Matcher et usigneret decimaltal.
    A eller a, E eller e, F eller f, G eller g Matcher et flydende nummer.
    n Returnerer antallet af læste tegn indtil videre.
    s Matcher en implementeringsdefineret tegnsekvens, der definerer en markør.

    Så det generelle format for formatspecifikator er:
     % (*) (bredde) (længde) specificator
  • vlist: En liste med argumenter for modtagelse af input.

vwscanf () Returværdi

  • Hvis det lykkes, returnerer funktionen vwscanf () antallet af vellykkede argumenter.
  • Ved fiasko returneres EOF.

Eksempel: Hvordan fungerer 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; )

Når du kører programmet, vil en mulig output være:

Hvad hedder du? Götz Hej Götz

Interessante artikler...