Funktionen vfwscanf () i C ++ används för att läsa bred teckensträng från en bred strängbuffert.
Funktionen vfwscanf () definieras i rubrikfilen.
vswscanf () prototyp
int vswscanf (const wchar_t * buffert, const wchar_t * format, va_list vlist);
Funktionen vfwscanf () läser data från den breda strängbuffertbufferten och lagrar värdena på respektive platser som definieras av vlist.
vswscanf () Parametrar
- buffert: pekaren till den null-avslutade bredsträngen för att läsa data från.
- format: Pekare till en null-avslutad bred teckensträng som anger hur ingången ska läsas. Den består av formatspecifikationer som börjar med%.
Formatsträngen har följande delar:- Icke-blankstegstecken utom% som var och en förbrukar ett identiskt tecken från inmatningsströmmen. Det kan få funktionen att misslyckas om nästa tecken i strömmen inte jämför lika.
- Mellanslagstecken: Alla efterföljande blankstegstecken behandlas som enstaka mellanslagstecken. Vidare anses ' n', ' t' och '' vara samma.
- Konverteringsspecifikation: Den följer följande format:
- Initialt% -tecken som anger början
- En valfri * kallad tilldelningsundertryckande karaktär. Om den här karaktären är närvarande tilldelar vfwscanf () inte resultatet till något mottagande argument.
- Ett valfritt positivt heltal som anger maximal fältbredd. Den anger det maximala antalet tecken som vfwscanf () får konsumera när den konvertering utförs som anges i den aktuella konverteringsspecifikationen.
- En valfri längdmodifierare som anger storleken på det mottagande argumentet.
- En konverteringsformatspecifikator.
Format Specifier Beskrivning % Matchar den bokstavliga% c Matchar en enstaka karaktär eller flera tecken. Om bredd definieras matchar den exakt breddtecken. s Matchar på varandra följande icke-blankstegstecken. Om bredd är definierad matchar den exakt breddtecken eller tills första vita utrymmet hittas. (uppsättning) Matchar en icke tom teckenföljd från den givna uppsättningen tecken. Om är närvarande i början av uppsättningen matchas alla tecken som inte finns i uppsättningen. d Matchar ett decimaltal. i Matchar ett heltal. o Matchar ett osignerat oktalt heltal. X eller x Matchar ett osignerat hexadecimalt heltal. u Matchar ett osignerat decimaltal. A eller a, E eller e, F eller f, G eller g Matchar ett flytande nummer. n Returnerar antalet lästa tecken hittills. sid Matchar en implementeringsdefinierad teckensekvens som definierar en pekare.
Så det allmänna formatet för formatspecifikatorn är:% (*) (bredd) (längd) specificerare
- vlist: En lista med argument för att ta emot ingångarna.
vswscanf () Returvärde
- Om det lyckas returnerar funktionen vfwscanf () antalet lästa argument.
- Vid fel returneras EOF.
Exempel: Hur fungerar vswscanf () -funktionen?
#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 ࿗ Æ ₹ ℧ ៘