问题:如上图所示, 问题出现点位于输入多个顶点值ABCDE时, 存入的结果为(\n A B C D),也就是说,i = 0 时scanf/这条语句被跳过了,直接执行i = 1时的scanf语句。
原因:第一次输入时,末尾的回车或空格键被保留在了缓冲区,下次输入时,缓冲区内的回车或空格就被自动地赋到字符数组中,因此scanf就被跳过了。
解决方案:
1.getchar()清除缓冲区中的字符,如图。
2.利用函数fflush( )清除缓冲区:如fflush(stdin),(待尝试);
标签:字符,解决方案,scanf,C语言,缓冲区,fflush,跳过 From: https://www.cnblogs.com/CarolLiu/p/16948213.html