C ++ wscanf () - C ++ Standardbibliotek

Funksjonen wscanf () i C ++ leser stort tegn fra stdin.

Funksjonen wscanf () er definert i topptekstfilen.

wscanf () prototype

 int wscanf (const char * format,…);

Funksjonen wscanf () leser dataene fra stdin og lagrer verdiene i de respektive variablene.

wscanf () Parametere

  • format: peker til en null-avsluttet tegnstreng som spesifiserer hvordan du skal lese inngangen. Den består av formatspesifikatorer som begynner med%.
    Formatstrengen har følgende deler:
    • Ikke tegn mellomrom unntatt% som hver bruker ett identisk tegn fra inngangsstrømmen. Det kan føre til at funksjonen mislykkes hvis neste tegn på strømmen ikke sammenligner like.
    • Hvitt mellomromstegn: Alle påfølgende tegn i hvitt mellomrom blir behandlet som ett hvitt mellomromstegn. Videre anses ' n', ' t' og '' som de samme.
    • Konverteringsspesifikasjon: Den følger følgende format:
      • Innledende% tegn som spesifiserer begynnelsen
      • En valgfri * kalt oppdragsdempende karakter. Hvis dette tegnet er tilstede, tildeler wscanf () ikke resultatet til noe mottaksargument.
      • Et valgfritt positivt heltall som spesifiserer maksimal feltbredde. Den spesifiserer maksimalt antall tegn som wscanf () har lov til å konsumere når konverteringen er spesifisert i den gjeldende konverteringsspesifikasjonen.
      • En valgfri lengdemodifikator som angir størrelsen på mottaksargumentet.
      • En konverteringsformatspesifikator.
    Formatspesifikatorer
    Format Spesifikator Beskrivelse
    % Matcher bokstavelig%
    c Matcher et enkelt tegn eller flere tegn. Hvis bredde er definert, samsvarer den nøyaktig med tegn i bredden.
    s Matcher påfølgende ikke-mellomromstegn. Hvis bredde er definert, samsvarer den nøyaktig med tegn i bredden eller til første hvite mellomrom er funnet.
    (sett) Matcher en ikke-tom sekvens av tegn fra det gitte settet med tegn. Hvis er tilstede i begynnelsen av settet, samsvarer alle tegnene som ikke er i settet.
    d Matcher et desimaltall.
    Jeg Matcher et heltall.
    o Matcher et usignert oktalt heltall.
    X eller x Matcher et usignert heksadesimalt heltall.
    u Matcher et usignert desimaltall.
    A eller a, E eller e, F eller f, G eller g Matcher et flytende nummer.
    n Returnerer antall tegn som er lest hittil.
    s Matcher en implementeringsdefinert tegnsekvens som definerer en peker.

    Så det generelle formatet til formatspesifikatoren er:
     % (*) (bredde) (lengde) spesifikator
  • …: Andre tilleggsargumenter for mottak av data. De forekommer i en sekvens i henhold til formatet.

wscanf () Returverdi

  • Funksjonen wscanf () returnerer antall mottaksargumenter som er tilordnet.
  • Hvis feil oppstår før det første mottaksargumentet ble tildelt, returneres EOF.

Eksempel: Hvordan fungerer wscanf () -funksjonen?

 #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; )

Når du kjører programmet, vil en mulig utgang være:

 Skriv inn et bredt tegn: ∭ ∭ er ikke alfanumerisk.

Interessante artikler...