请问下面一个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);