执行到输入整数后就直接进入for循环了,目前不知道是什么原因,不知道是不是字符串的问题,求大大们解决
gets前面加个getchar(); 用来消除缓存
gets前加一个getchar();
不然前面scanf输入时你回车键还在输入缓冲区,gets直接接收了一个空串
因为前面 scanf();用户输入了数据和换行符‘\n’,在读取了数据之后,输入缓存里就残留了一个‘\n’。
再次使用gets会读取输入缓存里上次残留的‘\n’,而不是读取新输入的字符。这样就造成了严重的错误。
可以在用 gets(str); 读取字符前用 setbuf(stdin, NULL); 清除输入缓存。
setbuf(stdin, NULL);
gets(str);