C ++ vfwscanf () - Perpustakaan Standard C ++

Fungsi vfwscanf () dalam C ++ digunakan untuk membaca rentetan watak luas dari aliran fail.

Fungsi vfwscanf () ditentukan dalam fail tajuk.

prototaip vfwscanf ()

 int vfwscanf (aliran FILE *, format const wchar_t *, va_list vlist);

Fungsi vfwscanf () membaca data dari aliran aliran fail dan menyimpan nilai ke lokasi masing-masing seperti yang ditentukan oleh vlist.

Parameter vfwscanf ()

  • stream: Aliran fail input untuk membaca data dari.
  • format: Pointer ke rentetan aksara lebar kosong yang menentukan bagaimana membaca input. Ia terdiri daripada penentu format bermula dengan%.
    String format mempunyai bahagian-bahagian berikut:
    • Karakter bukan ruang kosong kecuali% yang masing-masing menggunakan satu watak yang sama dari aliran input. Ia boleh menyebabkan fungsi gagal jika watak seterusnya dalam aliran tidak membandingkan sama.
    • Watak ruang kosong: Semua watak ruang kosong berturut-turut dianggap sebagai watak ruang kosong tunggal. Selanjutnya, ' n', ' t' dan '' dianggap sama.
    • Spesifikasi penukaran: Ia mengikuti format berikut:
      • Karakter% awal yang menentukan permulaan
      • Pilihan * dipanggil watak penekan tugas. Sekiranya watak ini ada, vfwscanf () tidak memberikan hasilnya kepada sebarang argumen yang diterima.
      • Nombor integer positif pilihan yang menentukan lebar medan maksimum. Ini menentukan jumlah maksimum karakter yang dibenarkan oleh vfwscanf () ketika melakukan penukaran yang ditentukan oleh spesifikasi penukaran semasa.
      • Pengubah panjang pilihan yang menentukan ukuran argumen penerimaan.
      • Penentu format penukaran.
    Penentu format
    Penentu Format Penerangan
    % Memadankan% literal
    c Memadankan satu watak atau beberapa watak. Sekiranya lebar ditentukan, sepadan dengan aksara lebar yang tepat.
    s Memadankan watak tanpa ruang kosong berturut-turut. Sekiranya lebar ditentukan, sepadan dengan aksara lebar tepat atau sehingga ruang kosong pertama dijumpai.
    (set) Memadankan urutan watak yang tidak kosong dari kumpulan watak yang diberikan. Sekiranya hadir pada awal set, maka semua watak yang tidak ada dalam set dipadankan.
    d Memadankan nombor bulat perpuluhan.
    i Memadankan bilangan bulat.
    o Memadankan bilangan bulat oktal yang tidak bertanda.
    X atau x Memadankan bilangan bulat heksadesimal yang tidak ditandatangani.
    awak Memadankan dengan bilangan bulat perpuluhan yang tidak bertanda.
    A atau a, E atau e, F atau f, G atau g Memadankan nombor titik terapung.
    n Mengembalikan jumlah watak yang dibaca setakat ini.
    hlm Memadankan urutan watak yang ditentukan pelaksanaan yang menentukan penunjuk.

    Jadi format umum penentu format adalah:
     Penentu% (*) (lebar) (panjang)
  • vlist: Senarai hujah untuk menerima input.

vfwscanf () Nilai pulangan

  • Sekiranya berjaya, fungsi vfwscanf () mengembalikan bilangan argumen yang berjaya dibaca.
  • Sekiranya gagal, EOF dikembalikan.

Contoh: Bagaimana fungsi vfwscanf () berfungsi?

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

Semasa anda menjalankan program, output yang mungkin adalah:

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

Artikel menarik...