新手遇到问题 请大家帮忙 C编程
char ch[100]="";
printf("请输入:");
while((ch[i]=getch())!=27)
{ printf("*");
i++;
if((ch[i]<48)||(ch[i]>57))
{ i=0;
printf("错误,含有非法字符,请重新输入\n");
printf("请输入:");
}
}
实现从键盘输入0——9的任意数字数字;其他输入为非法。不知到这个程序怎么改和错在那里。
[解决办法]
- C/C++ code
main(){ char ch[100]=""; int i=0; printf("请输入:"); while((ch[i]=getch())!=27) { printf("*"); i++; if((ch[i-1]<48)||(ch[i-1]>57)) { i=0; printf("错误,含有非法字符,请重新输入\n"); printf("请输入:"); } }}
[解决办法]
LS的解法应该可以满足你的要求吧
[解决办法]
[解决办法]
[解决办法]
getchar是用来获取字符的,并且是按回车就会结束,getchar()返回输入的字符的ASCII码,所以应该是
int ch;
while(ch = getchar())
然而输入数字按回车时又会出错,它返回了数字和回车这两个字符的ASCII码。所以会出错。
[解决办法]
i没有初始化,而且i++;应该放在if判断语句之后