scanf() 和getchar()函数是从输入流缓冲区中读取值的,而并非从键盘(也就是终端)缓冲区读取。而读取时遇到"\n"而结束的
如果第一次接受输入时取走字符后会留下字符"\n",这样第二次的读入函数直接从缓冲区中把"\n"取走了,显然读取成功了,所以不会再从终端读取,这样就造成了不运行的错觉。
while(1)
{
char flag;
//所以要先清除缓冲区
rewind(stdin);
flag = getchar();
}
scanf() 和getchar()函数是从输入流缓冲区中读取值的,而并非从键盘(也就是终端)缓冲区读取。而读取时遇到"\n"而结束的
如果第一次接受输入时取走字符后会留下字符"\n",这样第二次的读入函数直接从缓冲区中把"\n"取走了,显然读取成功了,所以不会再从终端读取,这样就造成了不运行的错觉。
while(1)
{
char flag;
//所以要先清除缓冲区
rewind(stdin);
flag = getchar();
}