Funksjonen vfwscanf () i C ++ brukes til å lese bred tegnstreng fra en bred strengbuffer.
Funksjonen vfwscanf () er definert i topptekstfilen.
vswscanf () prototype
int vswscanf (const wchar_t * buffer, const wchar_t * format, va_list vlist);
Funksjonen vfwscanf () leser dataene fra den brede strengbufferbufferen og lagrer verdiene på de respektive stedene som definert av vlist.
vswscanf () Parametere
- buffer: peker til null avsluttet bred streng for å lese dataene fra.
- format: peker til en null-avsluttet bred 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 ikke vfwscanf () resultatet til noe mottaksargument.
- Et valgfritt positivt heltall som spesifiserer maksimal feltbredde. Den spesifiserer det maksimale antall tegn som vfwscanf () har lov til å konsumere når konverteringen er spesifisert av gjeldende konverteringsspesifikasjon.
- En valgfri lengdemodifikator som angir størrelsen på mottaksargumentet.
- En konverteringsformatspesifikator.
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
- vlist: En liste over argumenter for å motta inngangene.
vswscanf () Returverdi
- Hvis vellykket, returnerer funksjonen vfwscanf () antall argumenter som er lest.
- Ved feil returneres EOF.
Eksempel: Hvordan fungerer vswscanf () -funksjonen?
#include #include #include void read( const wchar_t* buffer, const wchar_t* format,… ) ( va_list args; va_start (args, format); vswscanf (buffer, format, args); va_end (args); ) int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0fd7u00c6u20b9u2127u17d8"; wchar_t str(20); read(symbol, L"%ls", str); wprintf(L"Random Symbols"); for (int i=0; i
When you run the program, a possible output will be:
Random Symbols ࿗ Æ ₹ ℧ ៘