C ++ sscanf () - C ++ Pustaka Standar

Fungsi sscanf () di C ++ digunakan untuk membaca data dari buffer string.

sscanf () prototipe

 int sscanf (const char * buffer, format const char *,…);

The sscanf()fungsi membaca data membaca data dari buffer dan menyimpan nilai-nilai ke dalam variabel masing-masing.

Ini didefinisikan dalam file header.

sscanf () Parameter

  • buffer: Pointer ke string karakter yang diakhiri null untuk membaca datanya.
  • format: Pointer ke string karakter yang diakhiri dengan null yang menentukan cara membaca input. Ini terdiri dari penentu format yang dimulai dengan%.

    String format memiliki bagian-bagian berikut:

    • Non whitespace characterskecuali% yang masing-masing menggunakan satu karakter identik dari aliran input. Hal ini dapat menyebabkan fungsi gagal jika karakter berikutnya di aliran tidak sebanding.
    • Whitespace character: Semua karakter spasi putih yang berurutan diperlakukan sebagai karakter spasi putih tunggal. Selanjutnya, ' n', ' t' dan '' dianggap sama.
    • Conversion specification: Ini mengikuti format berikut:
      • Karakter% awal yang menentukan awal
      • Sebuah opsional * disebut karakter penugasan. Jika karakter ini ada, fscanf () tidak memberikan hasil ke argumen penerima.
      • Bilangan bulat positif opsional yang menentukan lebar bidang maksimum. Ini menentukan jumlah karakter maksimum yang boleh digunakan fscanf () saat melakukan konversi yang ditentukan oleh spesifikasi konversi saat ini.
      • Pengubah panjang opsional yang menentukan ukuran argumen penerima.
      • Penentu format konversi.
        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: %(*)(width)(length)specifier
  • …: Argumen tambahan lainnya untuk menerima data. Mereka terjadi dalam urutan sesuai dengan penentu format.

sscanf () Nilai kembali

  • Jika berhasil, sscanf()fungsi mengembalikan jumlah argumen penerima yang berhasil ditetapkan.
  • Jika kegagalan pencocokan terjadi sebelum argumen penerimaan pertama ditetapkan, mengembalikan nol.
  • Jika kegagalan input terjadi sebelum argumen penerimaan pertama diberikan, EOF dikembalikan.

Contoh: Bagaimana fungsi sscanf () bekerja

 #include int main () ( char fname(50), lname(50); char buffer() = "Dennis Ritchie"; sscanf(buffer, "%s %s", fname, lname); printf("First name : %s Last name : %s", fname, lname); return 0; )

Saat Anda menjalankan program, output yang mungkin adalah:

 Nama depan: Dennis Nama belakang: Ritchie

Artikel yang menarik...