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!