c语言,getchar( ) 后输出ASCII码,老是自动出现10!(用的是vs2010环境)
上代码!调试时发现getchar后总是会被自动赋一个10显示在屏幕上。。。求有经验者告诉我这个bug出现在何处!#include<stdio.h>main(void){c...
上代码!调试时发现getchar后总是会被自动赋一个10显示在屏幕上。。。
求有经验者告诉我这个bug出现在何处!
#include<stdio.h>
main(void){
char c;
printf("continue?[y/n]");
c=getchar();
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter\n");
c=getchar();
printf("%d",c);//转化为ASCII码输出
}
}
return;
} 展开
求有经验者告诉我这个bug出现在何处!
#include<stdio.h>
main(void){
char c;
printf("continue?[y/n]");
c=getchar();
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter\n");
c=getchar();
printf("%d",c);//转化为ASCII码输出
}
}
return;
} 展开
展开全部
10是换行符,就是你上面输入是否的时候,就是y或者n的时候,你要敲一个回车键确认吧,然后这个回车键就被送入输入缓冲区,所以,在输入的时候就会有10啦。 可以用一个getchar()来清空缓冲区,代码如下,你试试:
int main(void){
char c;
printf("continue?[y/n]");
c=getchar();
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter:");
getchar();
c=getchar();
printf("%d",c);//转化为ASCII码输出
}
}
return;
}
int main(void){
char c;
printf("continue?[y/n]");
c=getchar();
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter:");
getchar();
c=getchar();
printf("%d",c);//转化为ASCII码输出
}
}
return;
}
展开全部
#include<stdio.h>
int main(void){
char c;
printf("continue?[y/n]");
c=getchar();
fflush(stdin);
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter\n");
c=getchar();
fflush(stdin);
printf("%d",c);//转化为ASCII码输出
}
}
return 0;
}
清缓存,回车符,甚至假设要你输入一个字母的时候,你输入好几个再回车,也能避免问题。比多加个getchar()安全
int main(void){
char c;
printf("continue?[y/n]");
c=getchar();
fflush(stdin);
if(c=='y'){
printf("%s","\nHello!");
while(c!=EOF){
printf("%s","\ninput a letter\n");
c=getchar();
fflush(stdin);
printf("%d",c);//转化为ASCII码输出
}
}
return 0;
}
清缓存,回车符,甚至假设要你输入一个字母的时候,你输入好几个再回车,也能避免问题。比多加个getchar()安全
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回车换行的ASCII值是10,用getchar首先获得你输入的字符,然后获得你输入的回车,当然每次都输出10了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%s","\ninput a letter\n");后面加一句
fflush(stdin); 清除掉输入缓冲区就可以了。
fflush(stdin); 清除掉输入缓冲区就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%s","\ninput a letter\n");
getchar(); //添加这句, 当我们按回车时,也会被当作一个字符,添加这个消取回车。
c=getchar();
getchar(); //添加这句, 当我们按回车时,也会被当作一个字符,添加这个消取回车。
c=getchar();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询