Format Output dengan Sifar Utama dalam C
Dalam C, output pemformatan adalah penting untuk memaparkan data dengan cara yang khusus. Satu senario biasa ialah mencetak sifar utama, sama seperti cara printf mengendalikannya dengan d. Semasa menggunakan printf ialah pilihan, anda mungkin lebih suka operator output aliran C (<<).
Satu pilihan untuk mencapai sifar pendahuluan ialah dengan menggabungkan rentetan terformat menggunakan sprintf dengan operator output anda, seperti yang ditunjukkan di bawah :
std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;
Walau bagaimanapun, terdapat penyelesaian yang lebih bersih menggunakan IO manipulator:
#include <iomanip> using namespace std; cout << setw(5) << setfill('0') << zipCode << endl; // or without 'using namespace std;' std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;</p> <p>setw(width) menetapkan lebar medan, manakala setfill(char) menentukan aksara yang digunakan untuk mengisi ruang yang tinggal. Dalam kes ini, '0' digunakan untuk menambah sifar pendahuluan.</p> <p>Perhatikan bahawa manipulator ini mempengaruhi keadaan global objek cout. Untuk mengelakkan kesan yang tidak diingini dalam penggunaan kemudian, anda harus membuat asalnya dengan menetapkan semula bendera.</p> <p>Jika anda lebih suka pemformatan ringkas, pertimbangkan untuk menggunakan perpustakaan fmt:</p> <pre class="brush:php;toolbar:false">cout << fmt::format("{:05d}", zipCode);
C 20 dan kemudiannya telah dibina -dalam sokongan untuk std::format, dan C 23 memperkenalkan std::print, menyediakan pilihan yang lebih mudah untuk diformat output.
Untuk nombor bukan negatif seperti kod ZIP, kod di atas sudah memadai. Walau bagaimanapun, jika anda perlu mengendalikan nombor negatif, tambah std::internal untuk meletakkan aksara isian antara tanda dan magnitud:
cout << internal << setw(5) << setfill('0') << zipCode << endl;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memformat Output dengan Sifar Utama dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!