Apakah snprintf() dalam C++

Apakah Snprintf Dalam C



C++ ialah bahasa pengaturcaraan yang biasa digunakan yang menawarkan beberapa kelebihan kepada pengaturcara. Ia termasuk pelbagai fungsi terbina dalam yang boleh digunakan untuk pelbagai tujuan. Di antara fungsi tersebut, terdapat fungsi yang dipanggil snprint() , yang hampir tidak diketahui orang.

Dalam artikel ini, kami akan menerangkan sintaks, parameter, nilai pulangan dan cara kerja snprintf() fungsi dalam C++. Seseorang boleh mencari pemahaman yang lengkap tentang snprintf() dalam panduan ini.

Apakah snprintf() dalam C++

Dalam C++, snprintf() ialah fungsi yang digunakan untuk memformat atau menyimpan satu siri aksara dan nilai rentetan yang ditulis pada penimbal. Ia berfungsi sama dengan sprintf() berfungsi tetapi ia mempunyai keupayaan untuk mengatasi limpahan penimbal. The fail pengepala termasuk snprint() fungsi dan ia mesti diisytiharkan jika anda ingin menggunakan fungsi dalam program anda. The snprintf() fungsi menentukan kandungan maksimum yang boleh dimiliki oleh penimbal.







Di bawah ini adalah sintaks untuk digunakan snprintf() fungsi dalam C++:



snprintf ( char * penampan, saiz_t buf_size, const char * format,... ) ;

Setelah aksara telah ditulis, aksara nol yang berakhir disisipkan. Jika MAX_BUFSIZE adalah sifar, tiada apa yang disimpan dan penimbal boleh bertindak sebagai penuding nol.



Parameter snprintf()

Berikut ialah parameter yang digunakan dalam snprintf() fungsi.





  • penampan : Penunjuk kepada penimbal rentetan di mana output akan ditulis.
  • buf_size : MAX_BUFSIZE-1 ialah kiraan maksimum aksara yang boleh ditulis oleh seseorang kepada penimbal.
  • format : Rentetan yang ditamatkan nol telah ditulis pada aliran fail sebagai penunjuk. Ia terdiri daripada aksara dan penentu format yang mungkin bermula dengan %. Nilai pembolehubah yang mengikuti rentetan format menggantikan penentu format.
  • (hujah tambahan) : Bergantung pada jenis rentetan format, fungsi mungkin menjangkakan senarai argumen tambahan, semuanya mengandungi nilai yang digunakan untuk menggantikan penentu format dalam format rentetan (atau, untuk MAX_BUFSIZE, penunjuk ke lokasi storan) .

Perlu ada sekurang-kurangnya seberapa banyak parameter sedemikian kerana terdapat nilai penentu format. Fungsi ini mengabaikan sebarang hujah tambahan.

Apa yang snprintf() Kembali

Jika fungsi itu berjaya, ia mengembalikan bilangan aksara yang akan dianggap ditulis untuk penimbal besar yang sesuai, tidak termasuk aksara nol yang menamatkan. Apabila ia gagal, ia menghasilkan nilai negatif. Output akan dianggap ditulis sepenuhnya jika dan hanya jika nilai yang dikembalikan adalah bukan negatif dan lebih kecil daripada MAX_BUFSIZE.



Cara Menggunakan snprintf() dalam C++

Berikut ialah contoh penggunaan snprintf() dalam C++:

Contoh

#include
#include
menggunakan ruang nama std ;
int utama ( )
{
char buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
char str [ ] = 'linux' ;
int artikel = Empat lima ;
pulangan_Nilai = snprintf ( buff_size, MAX_BUFSIZE, 'Helo %s Pengguna, mari baca %d artikel tentang bash' ,str, artikel ) ;
jika ( pulangan_Nilai > 0 && pulangan_Nilai < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Bilangan aksara yang ditulis = ' << pulangan_Nilai << endl ;
}
lain
cout << 'Ralat menulis ke penimbal' << endl ;
kembali 0 ;
}

Dalam kod di atas, kami menetapkan saiz maksimum penimbal kepada 60. Ini bermakna kod akan menerima aksara tidak lebih daripada 60. Kami telah menggunakan snprintf() berfungsi untuk mengeluarkan rentetan yang mempunyai 56 aksara dan ia akan dipaparkan pada terminal keluaran. Sekiranya aksara yang anda masukkan melebihi 60, program akan mengalami ralat.

Kesimpulan

Kami telah menunjukkan prototaip, parameter, nilai pulangan, dan kerja C++ snprintf() fungsi yang menulis rentetan terformat ke penampan rentetan aksara. Kami menerangkan contoh dengan pemahaman yang lengkap tentang snprintf() dalam panduan ini.