#include<stdio.h> #include<stdlib.h> int main(void) { int N; scanf_s("%i",&N); printf("%d ",N); system("pause"); return 0; }
相同点:
在printf格式串中使用时,%d和%i没有区别;
不同点:
在scanf_s中使用时,%d只能与十进制形式的整数相匹配,%i能够匹配八进制、十进制和十六进制;
如果输入的数字中,有前缀0(例如056),那么%i会将其作为八进制数;
如果输入的数字中,有前缀0x或者0X(例如0X56或者0x56),那么%i会将其作为十六进制数;
在进行进制转换的时候适当使用%i会有很好的效果。