11智能在线
新记
C语言,scanf ()与getchar( )问题
如题所述
举报该文章
其他看法
第1个回答 2019-11-30
getchar(),是读入一个字符,不是清除缓存,由于你一般输入都是以回车结尾,实际上在计算机里,回车是一个字符,‘\n’,而读入的数据不包括这个‘\n’,所以他会留在输入缓冲区等待下一次输入(如果有的话),
所以有的时候在scanf后面加个getcahr(),可以起到清楚缓存的作用,不过这不是一定的,具体清除缓存方法还要视情况来定。
第2个回答 2019-10-18
清理缓存用的是fflush(stdin);
而getchar()是从标准输入中获取一个字符大小的数据。只因他能接收回车,故常常在scanf()后使用接收scanf接收不了回车字符。
相似回答
...getch()可以实现
getchar(), scanf()
则不行 求解释
答:
getchar()
;原因是关于缓冲区的
问题,
因为getchar()要按回车后才从缓冲区读一个字符。如果只写一个的话,假如你输入:Y再按回车。那么c=getchar();这句就读走了Y。但是回车还在缓冲区中。第二次循环c=getchar():又来了,缓冲区里有数据(回车);它就直接把回车读走了。所以
C
!=Y
,程序
结束。...
大家正在搜
c语言scanf和getchar
c语言中gets和getchar
scanf与getchar
getchar与scanf区别
c语言gets和scanf
scanf后面用getchar
getchar和scanf一起用
scanf后跟getchar
getchar和putchar