Rumah >pembangunan bahagian belakang >C++ >Manipulator Aliran C yang manakah Melekit, dan Mengapa Tidak `setw()`?
Manipulator Melekit dalam C
Dalam pengaturcaraan C, manipulator digunakan untuk mengubah suai pemformatan output strim. Manipulator tertentu berkelakuan dengan cara "melekit", bermakna kesannya berterusan sehingga berubah secara eksplisit.
Mengapa setw() tidak Melekit?
std::setw( ) ialah contoh manipulator tidak melekit. Ini bermakna ia hanya menjejaskan operasi sisipan seterusnya. Selepas setw() digunakan, tetapan lebar ditetapkan semula kepada nilai lalainya.
Adakah Manipulator lain Melekit?
Semua manipulator kecuali setw() adalah melekit. ini termasuk:
Perbezaan antara std::ios_base::width() dan std::setw()
std::setw() mengembalikan objek yang mewakili nilai lebar. Objek ini boleh digunakan untuk menetapkan lebar item seterusnya yang dimasukkan ke dalam strim.
std::ios_base::width() menetapkan secara langsung lebar strim. Sebarang sisipan berikutnya ke dalam strim akan diformatkan dengan lebar baharu.
Rujukan Dalam Talian
Malangnya, tiada dokumentasi yang jelas yang menyatakan secara eksplisit kelakuan melekit manipulator. Walau bagaimanapun, tingkah laku itu boleh disimpulkan daripada dokumentasi Perpustakaan Standard C.
Contoh Manipulator Melekit
Kod berikut menunjukkan tingkah laku melekit manipulator:
#include <iostream> #include <iomanip> using namespace std; int main() { // Set the precision to 2 decimal places cout << setprecision(2); // Insert a number cout << 3.14 << endl; // Output: 3.14 // The precision is still set to 2 decimal places cout << 1.2345 << endl; // Output: 1.23 }
Kesimpulan
Manipulator melekit adalah ciri berguna dalam C yang boleh membantu mengawal pemformatan output. Walau bagaimanapun, adalah penting untuk mengetahui tingkah laku mereka untuk mengelakkan hasil yang tidak dijangka.
Atas ialah kandungan terperinci Manipulator Aliran C yang manakah Melekit, dan Mengapa Tidak `setw()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!