Rumah > pembangunan bahagian belakang > C++ > %i lwn. %d dalam I/O Terformat C: Apakah Perbezaannya?

%i lwn. %d dalam I/O Terformat C: Apakah Perbezaannya?

Linda Hamilton
Lepaskan: 2024-12-07 12:49:13
asal
621 orang telah melayarinya

%i vs. %d in C's Formatted I/O: What's the Difference?

IO yang diformatkan dengan %i dan %d: Perbandingan Terperinci

Apabila menggunakan fungsi IO terformat seperti printf dan scanf, memahami perbezaan yang ketara antara penentu format adalah penting. Dua penentu biasa, %d dan %i, boleh membawa kepada kekeliruan jika gelagat berbeza mereka tidak difahami sepenuhnya.

Output: Kefungsian Sama

Jika %i dan % d digunakan untuk tujuan output (iaitu, dalam printf), tidak ada perbezaan yang ketara antara mereka. Kedua-dua penentu akan menghasilkan keluaran yang sama, sama ada perpuluhan, perenambelasan atau perlapanan.

Input: Di Mana Perbezaan Muncul

Walau bagaimanapun, apabila menggunakan penentu ini untuk input (iaitu, dalam scanf), perbezaan yang jelas timbul. %d mentafsir input sebagai integer dalam format perpuluhan yang ditandatangani. Ini bermakna nombor seperti -512 akan dikenali dengan betul dan diberikan nilai negatif.

Sebaliknya, %i lalai kepada tafsiran perpuluhan tetapi menunjukkan sifat yang lebih fleksibel. Ia bukan sahaja mengendalikan integer perpuluhan tetapi juga menampung nilai perenambelasan dan perlapanan apabila didahului oleh awalan yang berkaitan. Sebagai contoh, 0x1A akan ditafsirkan sebagai nombor perenambelasan, manakala 023 akan dikenali sebagai perlapanan.

Contoh Praktikal

Pertimbangkan rentetan input "033". Jika scanf membaca ini menggunakan %d, ia akan menganggapnya sebagai integer perpuluhan 33. Walau bagaimanapun, menggunakan %i, scanf mengecam 0 di hadapan sebagai awalan perlapanan, menyebabkan integer 27 diperuntukkan kepada pembolehubah.

Kesimpulan

Ringkasnya, manakala %i dan %d melakukan yang serupa untuk output dalam fungsi IO berformat, mereka mempamerkan tingkah laku yang berbeza untuk input. %d mengehadkan input kepada nombor perpuluhan yang ditandatangani, manakala %i menawarkan lebih serba boleh dengan menampung nilai perenambelasan dan perlapanan. Memahami perbezaan ini adalah penting untuk pengendalian input yang tepat dalam program C.

Atas ialah kandungan terperinci %i lwn. %d dalam I/O Terformat C: Apakah Perbezaannya?. 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