scanf的问题
printf("请输入要插入的数,和要插入的位置\n");
scanf("%d,%d",&x,&position);
printf("你要在位置%d的地方插入%d吗?\t yes\\no\n",position,x);
scanf("%c",&confirm);
if(confirm=='y')
{
insert(x,position,len,list);
printf("当前数组是:\n");
for(int i=0;i<len;i++)
{
printf("%d ",list[i]);
}
}
编译没有错,在单步执行的时候,scanf("%c",&confirm);直接过去了,没有让我输入任何东西
换成scanf("%d",&confirm);后就正常了,是什么原因confirm是char型的变量
[解决办法]
fflush(stdin); //在scanf前加入这个,清输入缓冲
scanf("%c",&confirm);
[解决办法]
scanf,prinf等标准I/O函数都是带缓冲的IO,就是标准C库会为调用者维护一个缓冲区域,在读写时均会缓冲相关内容。fflush(1)可以清空这些缓冲。