Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Utama Antara `%i` dan `%d` dalam Fungsi Input/Output Terformat C?

Apakah Perbezaan Utama Antara `%i` dan `%d` dalam Fungsi Input/Output Terformat C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 13:45:16615semak imbas

What's the Key Difference Between `%i` and `%d` in C's Formatted Input/Output Functions?

Memahami Nuansa Penentu Penukaran: %i lwn. %d dalam Fungsi IO Terformat

Dalam bidang input/output terformat ( IO) berfungsi seperti printf dan scanf, penentu penukaran memainkan peranan penting dalam membimbing format input atau output. Antara penentu ini, %i dan %d sering menimbulkan persoalan tentang persamaan dan perbezaannya.

Output: Kehadiran Seragam

Apabila digunakan untuk operasi output, seperti dengan printf, kedua-dua %i dan %d berkelakuan sama. Mereka secara konsisten mewakili integer dalam format perpuluhan. Sebagai contoh, coretan kod berikut menunjukkan output yang sama:

int num = 123;
printf("Decimal representation (%%d): %d\n", num);
printf("Decimal representation (%%i): %i\n", num);

Input: Gelagat Tersendiri

Walau bagaimanapun, apabila digunakan dalam operasi input dengan scanf atau fungsi serupa, %i dan %d mempamerkan perbezaan yang ketara. %d mengimbas integer secara eksklusif sebagai nombor perpuluhan yang ditandatangani. Sebaliknya, %i mengekalkan tafsiran perpuluhannya tetapi turut merangkumi input heksadesimal (diawali dengan 0x) dan perlapanan (diawalan 0).

Untuk menggambarkan perbezaan ini, pertimbangkan contoh berikut:

int num;
scanf("%%d", &num); // Only accepts decimal input
scanf("%%i", &num); // Accepts decimal, hexadecimal, or octal input

Jika pengguna memasukkan 033, scanf akan mentafsirkannya sebagai 27 dengan %i (kerana ia menganggapnya sebagai perlapanan) dan 33 dengan %d (tegasnya perpuluhan).

Ringkasnya...

Sementara %i dan %d berkongsi tujuan yang sama dalam IO berformat, perbezaan mereka terletak pada tingkah laku mereka semasa operasi input. %d terhad kepada input perpuluhan yang ditandatangani, manakala %i mengendalikan kedua-dua format perpuluhan dan asas lain (perenambelasan dan perlapanan) dengan lancar. Pemahaman ini penting untuk menyesuaikan operasi input dengan keperluan khusus program anda.

Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `%i` dan `%d` dalam Fungsi Input/Output Terformat C?. 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