我在寫(xiě)項(xiàng)目的時(shí)候經(jīng)常遇到要重復(fù)程序的項(xiàng)目,若此時(shí)輸入字母(本應(yīng)輸入數(shù)字)就會(huì)報(bào)錯(cuò),困擾我很久,因此想了一下解決辦法,希望能幫到大家,也希望有大神指出我的錯(cuò)誤并在評(píng)論區(qū)留下您的觀點(diǎn),很感謝您的閱讀!
由于我主要用switch case語(yǔ)句,所以以下的解決辦法皆與其相關(guān),其他的輸入場(chǎng)景也與其相似!
不超過(guò)9種情況時(shí),可以直接case’數(shù)字’,注意使用單引號(hào)?。。?!
int main()
{chindex++;
}
//index=1時(shí)進(jìn)入,應(yīng)為只有一位數(shù)字,case0-9的情況
if (index=1)
{char a = input[0];
switch (a)
{case '1':
printf("成功!\n");
break;
case '2':
printf("再次成功!\n");
break;
default:
printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");
break;
}
}
//注意有兩種輸入錯(cuò)誤的情況,均要進(jìn)行說(shuō)明
else
{printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");
}
return 0;
}
2.case情況>=10思路:使用函數(shù)和strcmp來(lái)判斷,因?yàn)椴荒苤苯颖容^字符串是否相等
//自定義函數(shù)部分,注意數(shù)字要用雙引號(hào)!?。。。。。。。?int Judge(char input[])
{if (strcmp(input, "1") == 0)
{return 1;
}
else if (strcmp(input,"12")==0)
{return 12;
}
else if (strcmp(input, "11") == 0)
{return 11;
}
else if (strcmp(input, "0") == 0)
{return 0;
}
//這個(gè)值是隨機(jī)賦的,目的是讓主函數(shù)中的大while循環(huán)一直進(jìn)行下去。
else
{return 100l;
}
}
int main()
{int judge = 0;
do
{int index = 0;
char ch;
char input[100];
while ((ch = getchar()) != '\n')
{ input[index] = ch;
index++;
}
//使用strcmp函數(shù)要小心,因?yàn)樗霾坏絓0會(huì)一直讀下去,導(dǎo)致讀到?jīng)]用的內(nèi)容
input[index] = '\0';
//這個(gè)根據(jù)自己的情況進(jìn)行設(shè)置
if (index<= 2)
{//調(diào)用函數(shù)
judge = Judge(input);
switch (judge)
{ case 1:
printf("1\n");
break;
case 11:
printf("11\n");
break;
case 12:
printf("12\n");
break;
default:
printf("輸入錯(cuò)誤!請(qǐng)重新輸入\n");
break;
}
}
else
{ printf("輸入錯(cuò)誤!請(qǐng)重新輸入\n");
//賦一個(gè)1給judge,確保即使輸錯(cuò)了也能讓while循環(huán)一直進(jìn)行下去。
judge = 1;
}
} while (judge);
}
總結(jié)
檢驗(yàn)合法性輸入有不同的方法,在不同的場(chǎng)景下還要注意輸入緩沖區(qū)中\(zhòng)n的問(wèn)題,但主要還是依靠while循環(huán)來(lái)實(shí)現(xiàn),因此還望各位讀者多多思考,謝謝!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
新聞名稱:C語(yǔ)言檢驗(yàn)用戶的合法性輸入(switch語(yǔ)句)-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article16/phsgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站改版、用戶體驗(yàn)、網(wǎng)站營(yíng)銷、品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)