Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C Streams Boleh Menggantikan printf untuk Pemformatan Output?

Bagaimanakah C Streams Boleh Menggantikan printf untuk Pemformatan Output?

Susan Sarandon
Lepaskan: 2024-12-02 02:56:10
asal
246 orang telah melayarinya

How Can C   Streams Replace printf for Output Formatting?

Memformat Output dengan C Stream: Alternatif kepada printf

Tidak seperti printf, aliran output C menyediakan pilihan yang mudah untuk mengawal penampilan output melalui penggunaan manipulator aliran. Untuk mencapai pemformatan yang sama seperti printf("d", zipCode), anda boleh menggunakan pendekatan berikut:

std::setw dan std::setfill

std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;
Salin selepas log masuk

std::setw(5) menentukan lebar medan 5, memastikan bahawa output berlapik sifar ke kiri jika perlu. std::setfill('0') mentakrifkan '0' sebagai aksara untuk mengisi sebarang ruang tambahan.

Kelebihan Manipulator Strim

Menggunakan manipulator strim menawarkan beberapa faedah :

  • Kemudahan penggunaan: Mereka menyediakan cara ringkas dan intuitif untuk memformat output berbanding dengan pernyataan printf yang besar.
  • Kebolehgunaan semula: Manipulator boleh digunakan semula beberapa kali untuk mengubah suai format output tanpa menjejaskan strim asas.

Pilihan Pemformatan Ganti

Perhatikan bahawa perpustakaan std::iomanip menyediakan pemformatan tambahan pilihan:

  • std::setiosflags(ios::left): Menjajarkan output ke kiri.
  • std::setiosflags(ios::right): Menjajarkan output ke kanan .

Mengendalikan Negatif Nombor

Jika anda perlu mengendalikan nombor negatif, anda boleh menggunakan std::internal, yang meletakkan aksara isian antara tanda dan magnitud:

std::cout << std::internal << std::setw(5) << std::setfill('0') << zipCode << std::endl;
Salin selepas log masuk

Alternatif Perpustakaan

Pertimbangkan untuk menggunakan perpustakaan fmt atau standard C 20 yang akan datang, yang menyediakan pilihan pemformatan yang berkuasa seperti:

  • fmt::format("{:05d}", zipCode)
  • std::format("{:05d}", zipCod)

Alternatif ini menawarkan penyelesaian pemformatan yang ringkas dan fleksibel.

Atas ialah kandungan terperinci Bagaimanakah C Streams Boleh Menggantikan printf untuk Pemformatan Output?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan