請問怎麼寫判定不是數字時提出警告

2006-10-01 5:40 am
我要寫一個程式(c語言:用c寫)
假如我是要輸入好幾筆成績,但是我中途某筆輸入的不是數字時,
會提出警告,然後從跑一遍剛剛那行,之後繼續下去,
例如:
甲:1
乙:2
丙:3
丁:a(不是數字的)
(提出警告)
丁:.....
像上面那要
我試過用
int i,x;
int a[10];
for(i = 0; i < 10; i++)
{
printf("<%d>:",i);
scanf("%d",&a[i]);
x=isdigit(a[i]);
printf("%d:",x);
if(x == 0){
printf("請輸入數字\\n");
printf("<%d>:",i);
scanf("%d",&a[i]);}
}
但是輸入數字以外的都會當
而且isdigit()不是輸入是0~9的都傳回非0值嗎?
怎麼我讓他等於x然後顯示出x,但卻是0?

回答 (2)

2006-10-01 6:44 am
✔ 最佳答案
scanf成功讀取之後會回傳 成功讀取的數量值如test = scanf("%d",&var);if(test == 1)printf("成功!");elseprintf("失敗");若是兩個的話則test = scanf("%d %d",&var1,&var2);if(test == 2)printf("成功!");elseprintf("失敗");若你想讓某變數一直讀取到數字時才罷休,則 while ( scanf("%d",&var) !=1 )  {   printf("try again:");   while(getchar()!='\n'); //為了把所有東西自緩衝區清掉  }就可以摟
2006-10-01 6:14 am
指定輸入的數值範圍
或是查ASCII表,去限制輸入的字元符號
if(num<0||num>10){
printf("WRONG!!\n");
}


收錄日期: 2021-04-27 17:13:11
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20060930000011KK12574

檢視 Wayback Machine 備份