Apa itu snprintf() di C++

Apa Itu Snprintf Di C



C ++ adalah bahasa pemrograman yang umum digunakan yang menawarkan beberapa keuntungan bagi programmer. Ini mencakup berbagai fungsi bawaan yang dapat digunakan untuk banyak tujuan. Di antara fungsi-fungsi itu, ada fungsi yang disebut snprint() , yang hampir tidak diketahui orang.

Pada artikel ini, kami akan menjelaskan sintaks, parameter, nilai kembalian, dan cara kerjanya snprintf() fungsi dalam C++. Satu dapat menemukan pemahaman yang lengkap tentang snprintf() dalam panduan ini.

Apa itu snprintf() di C++

Di C++, snprintf() adalah fungsi yang digunakan untuk memformat atau menyimpan serangkaian nilai karakter dan string yang ditulis ke buffer. Cara kerjanya mirip dengan sprintf() fungsi tetapi memiliki kemampuan untuk mengatasi buffer overflows. Itu file header termasuk snprint() fungsi dan itu harus dideklarasikan jika Anda ingin menggunakan fungsi dalam program Anda. Itu snprintf() fungsi menentukan konten maksimum yang bisa dimiliki buffer.







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



snprintf ( arang * penyangga, size_t buf_size, const arang * format, ... ) ;

Setelah karakter ditulis, karakter null akhir dimasukkan. Jika MAX_BUFSIZE adalah nol, tidak ada yang disimpan dan buffer dapat bertindak sebagai penunjuk nol.



Parameter snprintf()

Berikut adalah parameter yang digunakan pada snprintf() fungsi.





  • penyangga : Pointer ke buffer string tempat output akan ditulis.
  • buf_size : MAX_BUFSIZE-1 adalah jumlah maksimum karakter yang dapat dituliskan ke buffer.
  • format : String yang diakhiri null telah ditulis ke aliran file sebagai pointer. Itu terdiri dari karakter dan kemungkinan penentu format yang dimulai dengan%. Nilai variabel yang mengikuti string format menggantikan penentu format.
  • (argumen tambahan) : Bergantung pada jenis string format, fungsi mungkin mengharapkan daftar argumen tambahan, semuanya berisi nilai yang digunakan untuk menggantikan penentu format dalam format string (atau, untuk MAX_BUFSIZE, penunjuk ke lokasi penyimpanan) .

Harus ada parameter seperti itu minimal sebanyak nilai penentu format. Fungsi mengabaikan argumen tambahan apa pun.

Apa yang mengembalikan snprintf ().

Jika fungsi berhasil, ia mengembalikan jumlah karakter yang akan dianggap ditulis untuk buffer besar yang sesuai, tidak termasuk karakter null penghentian. Ketika gagal, itu menghasilkan nilai negatif. Keluaran akan dianggap benar-benar tertulis jika dan hanya jika nilai yang dikembalikan tidak negatif dan lebih kecil dari MAX_BUFSIZE.



Cara Menggunakan snprintf() di C++

Berikut adalah contoh penggunaan snprintf() di C++:

Contoh

#termasuk
#termasuk
menggunakan ruang nama std ;
int utama ( )
{
arang buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
arang str [ ] = 'linux' ;
int artikel = Empat.Lima ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'Halo %s Pengguna, mari baca %d artikel tentang bash' ,str, artikel ) ;
jika ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Jumlah karakter yang ditulis =' << return_Value << endl ;
}
kalau tidak
cout << 'Kesalahan menulis ke buffer' << endl ;
kembali 0 ;
}

Pada kode di atas, kami menetapkan ukuran maksimal buffer menjadi 60. Ini berarti kode akan menerima karakter tidak lebih dari 60. Kami telah menggunakan snprintf() berfungsi untuk mengeluarkan string yang memiliki 56 karakter dan itu akan ditampilkan di terminal keluaran. Jika karakter yang Anda masukkan lebih dari 60, program akan mengalami kesalahan.

Kesimpulan

Kami telah mendemonstrasikan prototipe, parameter, mengembalikan nilai, dan cara kerja C++ snprintf() fungsi yang menulis string yang diformat ke buffer string karakter. Kami menggambarkan contoh dengan pemahaman lengkap tentang snprintf() dalam panduan ini.