C语言,scanf ()与getchar( )问题

如题所述

第1个回答  2019-11-30
getchar(),是读入一个字符,不是清除缓存,由于你一般输入都是以回车结尾,实际上在计算机里,回车是一个字符,‘\n’,而读入的数据不包括这个‘\n’,所以他会留在输入缓冲区等待下一次输入(如果有的话),
所以有的时候在scanf后面加个getcahr(),可以起到清楚缓存的作用,不过这不是一定的,具体清除缓存方法还要视情况来定。
第2个回答  2019-10-18
清理缓存用的是fflush(stdin);

而getchar()是从标准输入中获取一个字符大小的数据。只因他能接收回车,故常常在scanf()后使用接收scanf接收不了回车字符。