[英]why does printf auto convert %x %o %d to hex oct and dec
我認為這應該可行。
#include<stdio.h>
void main(void)
{
short i;
scanf("0x%hi",&i);
printf("0x%x\n",i);
printf("0%o\n",i);
printf("%d\n",i);
}
想知道為什么嗎?任何答案,為什么這不起作用。 我認為這應該自動將其轉換為十六進制八進制,並且至少應正確打印十進制
32768
0x26
046
38
我得到的是32768輸入。
short
可能是您平台上的16位,在這種情況下32768
不適合。 嘗試改用更大的類型。
演示: http : //ideone.com/D0hzP 。
對不起,我犯了一個愚蠢的錯誤。 但是,當您提出問題時,它確實有幫助,並給您勇氣和安慰。
scanf("%hi",&i);
刪除0x可以解決此問題。 感謝大家的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.