Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Memformat Output dengan Sifar Utama dalam C?

Bagaimanakah Saya Boleh Memformat Output dengan Sifar Utama dalam C?

DDD
Lepaskan: 2024-12-04 21:44:15
asal
879 orang telah melayarinya

How Can I Format Output with Leading Zeros in C  ?

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;
Salin selepas log masuk

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);
Salin selepas log masuk

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan