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
Patricia Arquetteasal
2024-12-03 13:37:12379semak imbas

%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:
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