Manipulator lwn. Objek Format
Semasa cuba membina aliran rentetan, salah tanggapan biasa timbul berkenaan kelakuan std::setw() . Mengandaikan ia akan menjejaskan aliran rentetan secara berterusan adalah andaian yang salah, kerana ia ditetapkan semula selepas setiap sisipan. Artikel ini bertujuan untuk menjelaskan perbezaan antara manipulator dan objek format melekit dan tidak melekit, menangani soalan berikut:
Sticky Manipulators
Manipulator dalam std::ios_base boleh dikelaskan kepada dua kategori:
Format Objek
Format objek digunakan untuk mengubah sifat pemformatan strim secara sementara. Bertentangan dengan manipulator, mereka tidak menjejaskan objek aliran secara langsung. Contoh ini ialah objek format PutSquareBracket, yang membenarkan pengubahsuaian sementara pemformatan tanpa menjejaskan keadaan kekal.
Kesimpulan
std::setw() adalah unik antara manipulator kerana ia adalah satu-satunya yang tidak melekit. Kekurangan dokumentasi mengenai tingkah laku khususnya mungkin dikaitkan dengan persamaan yang dirasakan dengan manipulator lain. Walau bagaimanapun, realitinya ialah ia berkelakuan berbeza disebabkan oleh keperluan dalam operasi output berformat untuk menetapkan lebar secara eksplisit kepada sifar.
Atas ialah kandungan terperinci std::setw() dan Stringstreams: Manipulator Melekit lwn. Tidak Melekit—Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!