作者qoo200033 (好時光)
看板C_and_CPP
標題[問題] 關於define
時間Tue Apr 12 11:19:56 2011
問題:定義一組密碼(四個數字),使用者有三次輸入的機會,
輸入錯誤會從螢幕印出錯誤訊息
程式碼:
#include<stdio.h>
#define code 0608
int main(void){
int flag=0;
int password;
printf("%d\n",code);
do {
printf("輸入一組密碼(四位數)\n");
scanf("%d",&password);
if(flag==3){
printf("超過%d次,您已被鎖卡\n",flag);
return 0 ;
}
else if(password==code){
printf("登錄成功\n");
printf("%d\n",code);
}
flag=flag+1;
}while(password!=code);
return 0;
}
為何define出現了 illegal digit '8' for base '8' 的訊息
那要怎麼修正呢? 將其宣告為字串型態嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.101.8.91
→ james732:0開頭的會被當作8進位 04/12 11:20
→ james732:改成 #define code 608 就可以了 04/12 11:23
→ qoo200033:那如果要以0 開頭呢 04/12 11:52
→ nowar100:當字串 04/12 11:54
→ loveme00835:誰教你巨集常數要用小寫? = =" 04/12 12:02
→ xatier:巨集請用**大寫**!! 04/12 12:47
→ tropical72:0開頭表示八進制,所以你的表示完全不合理!因8進不能有 04/12 13:19
→ tropical72:8, printf("%d\n", 12); 結果會是 10.所以不用前導0 04/12 13:20
→ tropical72:修樓上,是 printf("%d",012); 結果是10 04/12 13:20