读书人

请教上面一个C的小疑点

发布时间: 2012-10-15 09:45:25 作者: rapoo

请问下面一个C的小问题
代码如下

C/C++ code
int main(){    char a[100];    char b;    scanf("%s",a);    printf("%s",a);    b=getchar();    printf("%c",b);    getchar();}

运行时,我先输入
cccc
然后打印出cccc
然后我再输入
ccc
打印为空
我调试发现断点运行到
b=getchar();
这一行的时候,我无法向输入流输入数据,我不知道怎么回事,求高人解释

[解决办法]
。。。你第一个getchar里面得到的是回车符,当然什么也没有了~~~~也就是说你第一次输入cccc的时候就已经运行到最后一句了。。。
[解决办法]
int main()
{
char a[100];
char b;
scanf("%s",a);
printf("%s\n",a);
fflush(stdin);//这个。
b=getchar();
printf("%c",b);
getchar();
}
[解决办法]
int main()
{
char a[100];
char b;
scanf("%s",a);
printf("%s",a);
//fflush(stdin);或者再次使用一个getchar清除上次缓冲区里面的回车
getchar();
b=getchar();
printf("%c",b);
getchar();
}
[解决办法]
C/C++ code
printf(" %c",b); 

读书人网 >C语言

热点推荐