为什么不执行字符的输入(语言-c语言)

执行到输入整数后就直接进入for循环了,目前不知道是什么原因,不知道是不是字符串的问题,求大大们解决

img

gets前面加个getchar(); 用来消除缓存

img


注意加getchar()接收换行符哦!有帮助的话采纳一下哦!谢谢!

gets前加一个getchar();
不然前面scanf输入时你回车键还在输入缓冲区,gets直接接收了一个空串

因为前面 scanf();用户输入了数据和换行符‘\n’,在读取了数据之后,输入缓存里就残留了一个‘\n’。
再次使用gets会读取输入缓存里上次残留的‘\n’,而不是读取新输入的字符。这样就造成了严重的错误。

可以在用 gets(str); 读取字符前用 setbuf(stdin, NULL); 清除输入缓存。

    setbuf(stdin, NULL);
    gets(str);