C getchar()

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

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

{

con_key=getchar();

}

为什么赋值两遍给​con_key 

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

 

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

posted @ 2021-09-09 13:56  Aliezerofist  阅读(51)  评论(0编辑  收藏  举报