C ++ vfwscanf () - C ++ Standardbibliotek

Funktionen vfwscanf () i C ++ används för att läsa bred teckensträng från en filström.

Funktionen vfwscanf () definieras i rubrikfilen.

vfwscanf () prototyp

 int vfwscanf (FIL * stream, const wchar_t * format, va_list vlist);

Funktionen vfwscanf () läser data från filströmmen och lagrar värdena på respektive platser som definieras av vlist.

vfwscanf () Parametrar

  • stream: Mata in filström 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.
    Formatspecifikationer
    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.

vfwscanf () Returvärde

  • Om det lyckas returnerar funktionen vfwscanf () antalet lästa argument.
  • Vid fel returneras EOF.

Exempel: Hur fungerar vfwscanf ()?

 #include #include #include #include void read( FILE *fp, const wchar_t* format,… ) ( va_list args; va_start (args, format); vfwscanf (fp, format, args); va_end (args); ) int main () ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t symbol() = L"u0915u0916u0917u0918u0919"; wchar_t names(5)(5) = (L"Ka", L"Kha", L"Ga", L"Gha", L"Nga"); FILE *fp = fopen("example.txt","w+"); for (int i=0; i<5; i++) fwprintf(fp, L"%lc %ls ", symbol(i), names(i)); rewind(fp); wchar_t ch, str(5); for (int i=0; i<5; i++) ( read(fp, L"%lc %ls ", &ch, str); wprintf(L"%lc - %ls", ch, str); ) fclose(fp); return 0; )

När du kör programmet blir en möjlig utdata:

 क - Ka ख - Kha ग - Ga घ - Gha ङ - Nga

Intressanta artiklar...