Pemformatan Tepat dengan std::ostream
Bagaimana untuk mencapai pemformatan tepat dengan std::cout? Pertimbangkan contoh berikut:
<code class="cpp">double my_double = 42.0; char str[12]; printf_s("%11.6lf", my_double); // Prints " 42.000000"</code>
Dalam kod ini, printf_s digunakan untuk memformat dan mencetak double my_double dengan ketepatan dan lebar tertentu. Kefungsian setara dalam std::ostream boleh dicapai menggunakan manipulator strim.
Untuk mengeluarkan " 42.000000" menggunakan std::cout, gunakan manipulator ini dalam urutan:
std:: tetap: Menetapkan tatatanda titik tetap dan bukannya tatatanda saintifik.
std::setw(11): Menetapkan lebar medan output kepada 11 aksara.
std::setprecision(6): Menentukan bilangan digit yang akan dipaparkan selepas titik perpuluhan.
Kod yang betul menjadi:
<code class="cpp">#include <iomanip> std::cout << std::fixed << std::setw(11) << std::setprecision(6) << my_double;</code>
Ini pendekatan membenarkan pemformatan tepat nilai berganda menggunakan std::ostream tanpa menggunakan perpustakaan pihak ketiga atau manipulasi rentetan tersuai.
Untuk rujukan komprehensif tentang pemformatan std::ostream, rujuk dokumentasi Perpustakaan Standard C, khususnya bahagian "Manipulator Strim."
Atas ialah kandungan terperinci Bagaimana untuk mencapai pemformatan tepat dengan std::ostream seperti printf_s?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!