C getchar()

con_key = getchar();//获取键盘输入的字符

if(con_key==' ')//按下回车键程序继续 但此时赋值的为回车,程序进入if

{

con_key=getchar();

}

为什么赋值两遍给​con_key 

当从键盘输入时,键盘输入的字符会保存在缓冲区,当按下回车键,缓冲区被清空,缓冲区的内容被写入目标内,这段代码的目标就是y,即我从键盘输入的y被写入缓冲区里,这个时候缓冲区还有什么呢?准确的说,这时缓冲区里还有一个字符'enter',

 

如果不加getchar(),缓冲区会把'enter'这个字符写进getchar(),这时程序就会直接结束.而加了getchar();它会吃了缓冲区里的'enter'字符,这时候缓冲区才是真的什么都没有,getchar()等待缓冲区写入内容,这时程序才会像下面那样执行

本文来自博客园,作者:{繁星划过天际},转载请注明原文链接:https://www.cnblogs.com/Aliez02/p/15246717.html

原文地址:https://www.cnblogs.com/Aliez02/p/15246717.html