问题描述:我输入3.142412swich不应该只加3就退出了么,为什么后面会显示其他数字也加了啊求问
连接:我输入3.142412swich不应该只加3就退出了么,为什么后面会显示其他数字也加了啊求问-优快云社区
我的回复:
#include <stdio.h>
int main(void) {
int i, ch;
int cnt[10] = {0}; /* 数字字符的出现次数 */
while ((ch = getchar()) != EOF) { // 同时按下《CTRL》+《Z》键,可以输入EOF
setbuf(stdin, NULL); // 加上这1行:清除键盘缓冲区【windows可以直接用fflush(stdin)】
switch (ch) {
case '0' :
cnt[0]++;
break;
case '1' :
cnt[1]++;
break;
case '2' :
cnt[2]++;
break;
case '3' :
cnt[3]++;
break;
case '4' :
cnt[4]++;
break;
case '5' :
cnt[5]++;
break;
case '6' :
cnt[6]++;
break;
case '7' :
cnt[7]++;
break;
case '8' :
cnt[8]++;
break;
case '9' :
cnt[9]++;
break;
}
}
puts("数字字符的出现次数");
for (i = 0; i < 10; i++

在使用C语言的getchar()函数从键盘输入时,遇到一个问题:输入3.142412后,预期仅加3就退出,但实际上后续数字也被加入。这涉及到输入流处理,getchar()会读取包括小数点在内的所有字符。解决方案是正确处理输入流或使用其他输入方法。
最低0.47元/天 解锁文章
2032

被折叠的 条评论
为什么被折叠?



