scanf()函数对最后的回车确认符并不丢弃,而是存储在缓存中,这样如果,下一个操作是读字符操作,则会将缓存中的回车符误读为实际数据,而造成程序运行异常。
因此,在使用scanf()函数时,都会在后面加上while (getchar()!=‘\n‘) ; 通过while (getchar()!=‘\n‘) ;来清除缓存中的垃圾数据。
1 scanf("%d", &n); while(getchar() != ‘\n‘);
原文:https://www.cnblogs.com/lbbbnb/p/13685850.html