C ++ vfwscanf () - C ++ standarta bibliotēka

Funkcija vfwscanf () C ++ tiek izmantota, lai no failu straumes nolasītu platas rakstzīmju virknes.

Funkcija vfwscanf () ir definēta galvenes failā.

vfwscanf () prototips

 int vfwscanf (FILE * straume, const wchar_t * formāts, va_list vlist);

Funkcija vfwscanf () nolasa datus no failu straumes straumes un saglabā vērtības attiecīgajās vietās, kā noteikts vlist.

vfwscanf () parametri

  • straume: ievada failu straumi, no kuras nolasīt datus.
  • formāts: rādītājs ar nulli izbeigtu plašu rakstzīmju virkni, kas norāda, kā lasīt ievadi. Tas sastāv no formāta specifikatoriem, kas sākas ar%.
    Formāta virknei ir šādas daļas:
    • Rakstzīmes, kas nav atstarpes, izņemot%, no kurām katra patērē vienu identisku rakstzīmi no ievades straumes. Tas var izraisīt funkcijas kļūmi, ja straumes nākamais raksturs nav vienāds.
    • Atstarpes rakstzīme: visas secīgās atstarpes rakstzīmes tiek uzskatītas par vienu atstarpes rakstzīmi. Tālāk ' n', ' t' un '' tiek uzskatīti par vienādiem.
    • Reklāmguvumu specifikācija: tā tiek izmantota šādā formātā:
      • Sākotnējais raksturs%, kas norāda sākumu
      • Neobligāts *, ko sauc par uzdevumu nomācošu rakstzīmi. Ja ir šī rakstzīme, vfwscanf () nepiešķir rezultātu nevienam saņemšanas argumentam.
      • Neobligāts pozitīvs vesels skaitlis, kas norāda lauka maksimālo platumu. Tas norāda maksimālo rakstzīmju skaitu, ko vfwscanf () atļauts patērēt, veicot pašreizējā reklāmguvumu specifikācijā norādīto pārveidošanu.
      • Neobligāts garuma pārveidotājs, kas norāda saņemošā argumenta lielumu.
      • Reklāmguvuma formāta norādītājs.
    Formātu specifikatori
    Formāta specifikators Apraksts
    % Atbilst burtiskajam%
    c Sakrīt ar vienu vai vairākām rakstzīmēm. Ja platums ir definēts, precīzi atbilst platuma rakstzīmēm.
    s Saskaņo secīgas rakstzīmes, kas nav atstarpes. Ja platums ir noteikts, precīzi atbilst platuma rakstzīmēm vai līdz tiek atrasts pirmais atstarpe.
    (komplekts) Sakrīt ar tukšo rakstzīmju secību no norādītās rakstzīmju kopas. Ja kopas sākumā ir ^, tad visas rakstzīmes, kas nav iestatītas, tiek saskaņotas.
    d Atbilst decimāldaļskaitlim.
    i Sakrīt ar veselu skaitli.
    o Sakrīt ar neparakstītu astotnieku.
    X vai x Atbilst neparakstītam heksadecimālam skaitlim.
    u Sakrīt ar neparakstītu decimāldaļskaitli.
    A vai a, E vai e, F vai f, G vai g Atbilst peldošā komata skaitlim.
    n Atgriež līdz šim nolasīto rakstzīmju skaitu.
    lpp Atbilst ieviešanas definētai rakstzīmju secībai, kas nosaka rādītāju.

    Tātad formāta specifikatora vispārējais formāts ir:
     % (*) (platums) (garums) specifikators
  • vlist: argumentu saraksts ievades saņemšanai.

vfwscanf () Atgriežamā vērtība

  • Ja tas izdodas, funkcija vfwscanf () atgriež veiksmīgi nolasīto argumentu skaitu.
  • Pēc neveiksmes EOF tiek atgriezts.

Piemērs: Kā darbojas funkcija 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; )

Palaidot programmu, iespējamā izeja būs:

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

Interesanti raksti...