C ++ vswscanf () - C ++ Pustaka Standar

Fungsi vfwscanf () di C ++ digunakan untuk membaca string karakter lebar dari buffer string lebar.

Fungsi vfwscanf () didefinisikan dalam file header.

vswscanf () prototipe

 int vswscanf (const wchar_t * buffer, format const wchar_t *, va_list vlist);

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

vswscanf () Parameter

  • buffer: Pointer ke string lebar yang diakhiri null untuk membaca data dari.
  • format: Pointer ke string karakter lebar yang diakhiri null yang menentukan cara membaca input. Ini terdiri dari penentu format yang dimulai dengan%.
    String format memiliki bagian-bagian berikut:
    • Karakter bukan spasi kosong kecuali% yang masing-masing menggunakan satu karakter identik dari aliran input. Hal ini dapat menyebabkan fungsi gagal jika karakter berikutnya di aliran tidak sebanding.
    • Karakter spasi: Semua karakter spasi putih yang berurutan diperlakukan sebagai karakter spasi putih tunggal. Selanjutnya, ' n', ' t' dan '' dianggap sama.
    • Spesifikasi konversi: Ini mengikuti format berikut:
      • Karakter% awal yang menentukan awal
      • Sebuah opsional * disebut karakter penugasan. Jika karakter ini ada, vfwscanf () tidak memberikan hasil ke argumen penerima apa pun.
      • Bilangan bulat positif opsional yang menentukan lebar bidang maksimum. Ini menentukan jumlah karakter maksimum yang boleh digunakan vfwscanf () saat melakukan konversi yang ditentukan oleh spesifikasi konversi saat ini.
      • Pengubah panjang opsional yang menentukan ukuran argumen penerima.
      • Penentu format konversi.
    Penentu format
    Penentu Format Deskripsi
    % Cocok dengan% literal
    c Cocok dengan satu karakter atau beberapa karakter. Jika lebar ditentukan, sama persis dengan karakter lebar.
    s Cocok dengan karakter bukan spasi kosong yang berurutan. Jika lebar ditentukan, cocok persis dengan karakter lebar atau hingga spasi pertama ditemukan.
    (set) Cocok dengan urutan karakter yang tidak kosong dari kumpulan karakter yang diberikan. Jika ada di awal set, maka semua karakter yang tidak ada di set akan cocok.
    d Cocok dengan bilangan bulat desimal.
    saya Cocok dengan integer.
    Hai Cocok dengan bilangan bulat oktal yang tidak bertanda.
    X atau x Cocok dengan bilangan bulat heksadesimal tak bertanda.
    u Cocok dengan bilangan bulat desimal yang tidak bertanda.
    A atau a, E atau e, F atau f, G atau g Cocok dengan angka floating-point.
    n Mengembalikan jumlah karakter yang sudah dibaca.
    p Cocok dengan implementasi yang ditentukan urutan karakter yang mendefinisikan pointer.

    Jadi format umum penentu format adalah:
     % (*) (lebar) (panjang) penentu
  • vlist: Daftar argumen untuk menerima input.

vswscanf () Nilai kembali

  • Jika berhasil, fungsi vfwscanf () mengembalikan jumlah argumen yang berhasil dibaca.
  • Jika gagal, EOF dikembalikan.

Contoh: Bagaimana fungsi vswscanf () bekerja?

 #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 ࿗ Æ ₹ ℧ ៘

Artikel yang menarik...