con_key = getchar();//获取键盘输入的字符
if(con_key==' ')//按下回车键程序继续 但此时赋值的为回车,程序进入if
{
con_key=getchar();
}
为什么赋值两遍给con_key
当从键盘输入时,键盘输入的字符会保存在缓冲区,当按下回车键,缓冲区被清空,缓冲区的内容被写入目标内,这段代码的目标就是y,即我从键盘输入的y被写入缓冲区里,这个时候缓冲区还有什么呢?准确的说,这时缓冲区里还有一个字符'enter',
如果不加getchar(),缓冲区会把'enter'这个字符写进getchar(),这时程序就会直接结束.而加了getchar();它会吃了缓冲区里的'enter'字符,这时候缓冲区才是真的什么都没有,getchar()等待缓冲区写入内容,这时程序才会像下面那样执行