gets和scanf的一些疑问,求高人指点迷津。
下面这段代码
int main(){
int i,j;
char s,str[10];
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("===%d\n",j);
gets(str);
}
printf("-----------%d\n",i);
scanf("%c",&s);
fflush(stdio);
}
}
运行结果如下:
===0
aa
===1
aa
===2
aa
-----------0
a
===0
===1
aa
===2
aa
-----------1
a
为什么外面第二次循环,里面第一个gets()会直接跳过。
如果删除 scanf("%c",&s); 则不会如此。。。
求高手能指点指点。小弟感激不尽!
[解决办法]
清缓存
[解决办法]
额,dev没你说的问题
[解决办法]
fflush(stdio)什么意思啊?