c 语言中 scanf被跳过问题的解决方法
在运行scanf函数时,scanf常常会被跳过。这是因为当你进行过了scanf函数后, 在第二次scanf函数时,
由于缓存区里依然存着第一次结束时送入的回车符,在第二次时没有读入就直接把回车符送入了,所以没有真正起到读入数据的作用。这个时候我们清除缓冲区就可以了。
解决方法:
scanf前面加rewind(stdin);
或者
scanf前面 fflush(stdout)
不过在Linux 下面这两种方法都没用
Linux 下的解决方法:
setbuf(stdin, NULL);//使stdin输入流由默认缓冲区转为无缓冲区