Rumah > pembangunan bahagian belakang > C++ > %i lwn. %d dalam C: Bilakah Penentu Format Ini Berbeza?

%i lwn. %d dalam C: Bilakah Penentu Format Ini Berbeza?

Patricia Arquette
Lepaskan: 2024-12-03 13:37:12
asal
506 orang telah melayarinya

%i vs. %d in C: When Do These Format Specifiers Differ?

Perbezaan Antara Penentu Format %i dan %d dalam Fungsi I/O Terformat (printf / scanf)

Fungsi I/O terformat seperti printf dan scanf gunakan penentu penukaran untuk mengawal cara data diwakili semasa input atau output. Antara penentu ini, %i dan %d biasanya digunakan untuk integer.

Penggunaan untuk Output (%i lwn. %d)

Apabila digunakan sebagai penentu format untuk output, tiada perbezaan antara %i dan %d. Kedua-duanya menghasilkan hasil yang sama. Ia mewakili nilai integer dalam format perpuluhan.

Penentukan Input

Walau bagaimanapun, perbezaan muncul apabila menggunakan %i dan %d sebagai penentu input (dalam scanf ). Di sinilah letaknya perbezaan utama:

  • %d: Menentukan integer perpuluhan yang ditandatangani. Ia menjangkakan input ialah nombor asas-10 (perpuluhan).
  • %i: Tingkah laku lalai adalah serupa dengan %d (integer perpuluhan bertanda). Walau bagaimanapun, ia mempunyai ciri tambahan: ia membenarkan input dalam asas lain, seperti:

    • Heksadesimal: Didahului oleh "0x", ia mentafsirkan input sebagai nombor perenambelasan.
    • Oktal: Didahului oleh "0", ia mentafsirkan input sebagai oktal nombor.

Contoh Praktikal

Untuk menggambarkan perbezaannya, pertimbangkan rentetan input "033".

  • Dengan %d: Ia menganggapnya sebagai integer perpuluhan bertanda, menghasilkan dalam nilai 33.
  • Dengan %i: Memandangkan input bermula dengan "0", ia mengecamnya sebagai nombor perlapanan. Nilai "033" dalam perlapanan ialah 27.

Ringkasnya, manakala %i dan %d berkelakuan serupa untuk output, mereka berbeza dalam tingkah laku mereka untuk input. %i menyediakan kefungsian lanjutan dengan membenarkan input perenambelasan dan perlapanan, manakala %d terhad kepada input perpuluhan yang ditandatangani.

Atas ialah kandungan terperinci %i lwn. %d dalam C: Bilakah Penentu Format Ini Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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