首页 > 其他分享 >关于C语言 scanf 字符类型时直接跳过问题 出现的原因及解决方案

关于C语言 scanf 字符类型时直接跳过问题 出现的原因及解决方案

时间:2022-12-03 16:11:45浏览次数:39  
标签:字符 解决方案 scanf C语言 缓冲区 fflush 跳过

问题:如上图所示, 问题出现点位于输入多个顶点值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

相关文章