c语言问题。输入数据要符合要求,不符合提示错误并重性输入 15

比如要求只能输入0、1、2,其他输入无效,并提示错误,重新输入,这代码怎么写?... 比如要求只能输入0、1、2,其他输入无效,并提示错误,重新输入,这代码怎么写? 展开
 我来答
xoaxa
2013-03-02 · TA获得超过8608个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3435万
展开全部
/*
092134179x:输入错误,继续输入,'#'结束
21344009764x:输入错误,继续输入,'#'结束
09213417921344009764
Press any key to continue
*/
#include <stdio.h>
#include <conio.h>
int main()
{ char ch = 0,s[36];
int i = 0;
while(1) {
ch = getch();
if(ch >= '0' && ch <= '9' && i < 35) {
s[i++] = ch;
putchar(ch);
}
else if(ch == '#') {
s[i++] = '\0';
break;
}
else {
printf("x:输入错误,继续输入,'#'结束\n");
continue;
}
}
printf("%s\n",s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
准赈早见琥珀川
2013-03-02
知道答主
回答量:50
采纳率:0%
帮助的人:16.8万
展开全部
#include<stdio.h>
main()
{
int a;
printf("input an integer:\n");
scanf("%d",&a);
for(;a!=0&&a!=1&&a!=2;)
{ printf("input error,repeat:\n");
scanf("%d",&a);
}
printf("\ninput correct");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱PC9
2013-03-02
知道答主
回答量:41
采纳率:0%
帮助的人:15.3万
展开全部
int a;printf("input a num:");
while(scanf("%d",&a)!=1||a!=0&&a!=1&&a!=2)
{printf("error,input again:");
while(getchar()!='\n');}
更多追问追答
追问
while(getchar()!='\n')什么意思?
追答
如果输入的东西不是int型的话,a无法得到,东西留在输入缓冲带,用while(getchar()!='\n')读掉这些东西,不然会留在缓冲带,再要输入时就会受到阻碍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式