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
Lepaskan: 2024-12-18 13:45:16
asal
540 orang telah melayarinya

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

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

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!

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