首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

新手遇到有关问题 请大家帮忙 C编程

2012-08-29 
新手遇到问题 请大家帮忙C编程char ch[100];printf(请输入:)while((ch[i]getch())!27){printf(*

新手遇到问题 请大家帮忙 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的解法应该可以满足你的要求吧
[解决办法]
探讨

我还是不明白。为什么 只差一个i-1。


[解决办法]
探讨
我还是不明白。为什么 只差一个i-1。
这个程序没有问题了。
可是 fp=fopen("G:\\lxwe.txt","w");

if(fp==NULL) {printf("can't open this file!\n"); exit(0);}
fprintf(fp,"%c",ch);
fclose(fp);
却不行了。

[解决办法]
getchar是用来获取字符的,并且是按回车就会结束,getchar()返回输入的字符的ASCII码,所以应该是
int ch;
while(ch = getchar())
然而输入数字按回车时又会出错,它返回了数字和回车这两个字符的ASCII码。所以会出错。

[解决办法]
i没有初始化,而且i++;应该放在if判断语句之后

热点排行