Manipulator Iomanip Melekit
Dalam C , manipulator iomanip ialah pengubah suai strim, digunakan untuk mengubah gelagat atau format aliran input dan output. Walau bagaimanapun, tidak semua manipulator berkelakuan dengan cara yang sama; sesetengahnya bersifat sementara dan hanya menjejaskan sisipan seterusnya, manakala yang lain "melekit", kekal berkuat kuasa sehingga diubah secara eksplisit.
Mengapa std::setw() Tidak Melekit?
Tidak seperti kebanyakan manipulator lain, std::setw() tidak mengubah keadaan strim secara kekal. Ini kerana ia dianggap sebagai manipulator pemformatan, di mana setiap sisipan memerlukan spesifikasi lebar yang jelas untuk penjajaran yang betul. Secara lalai, ia ditetapkan semula kepada sifar selepas setiap sisipan untuk mengelakkan kekaburan dan mengekalkan kawalan ke atas pemformatan.
Manipulator Melekit
Manipulator berikut adalah melekit, bermakna ia kekal berkuat kuasa sehingga diubah oleh manipulator lain atau secara eksplisit set semula:
std::ios_base::width() vs. std::setw()
std::ios_base::width () ialah fungsi ahli std::ios_base, kelas asas semua jenis aliran. Ia mengembalikan lebar medan semasa. Walau bagaimanapun, ia tidak mengawal lebar medan secara langsung; std::setw() mesti digunakan untuk menetapkan lebar medan.
Rujukan Dalam Talian
Rujuk kepada dokumentasi Perpustakaan Standard C untuk senarai komprehensif manipulator iomanip dan tingkah laku mereka. Ia memberikan penerangan terperinci dan contoh kefungsian mereka. Sebagai alternatif, sumber dalam talian seperti tapak web cppreference menawarkan maklumat menyeluruh tentang manipulator, termasuk sifat melekitnya.
Atas ialah kandungan terperinci Mengapa Sesetengah Manipulator C iomanip Melekit Manakala Yang Lain, Seperti `std::setw()`, Bukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!