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

关于scanf有关问题

2013-09-14 
关于scanf问题只是部分代码。代码1:#includestdio.hint main(void){char chint a[10]int i,j,tempprin

关于scanf问题
只是部分代码。

代码1:#include<stdio.h>
int main(void)
{
char ch;
int a[10];
int i,j,temp;

printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

printf("请输入A或D:");
scanf(" %c",&ch);
return 0;
}
代码2::#include<stdio.h>
int main(void)
{
char ch;
int a[10];
int i,j,temp;

printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

printf("请输入A或D:");
scanf("%d",&ch);
return 0;
}
为什么代码1中如果把scanf(" %c",&ch);该为scanf("%c",&ch);就不能输入。
但代码2中scanf("%d”,&ch);能输入。 scanf问题
[解决办法]
scanf("%c",&ch);会接受回车符,所以你上面的输入完毕后,最后一个回车符会被ch接受,就是说已经输入了,所以看上去就像是跳过了执行。但scanf("%d",&ch);不会接受回车符。

你可以在scanf("%c",&ch);之前加一句getchar()吸收回车符。
或者是把getchar();改成fflush(stdin);清空输入缓冲区。

热点排行