GCC中gets()/fges()读入输入的问题解决 -- 清理stdin缓存

这几天一直被一个bug折磨,最终发现是stdin缓存了‘\n’,因此fgets()函数无法正常执行,解决的方法是在调用fgets()之前将缓存清空。VC中可以使用fflush(stdin)的方法,但在gcc中,fflush(stdin)的作用并不是清空stdin缓存,因此需要我们手动来做,代码如下:

代码说明:

这段代码的目的是读入矩阵的行、列数,然后让用户一次性输入整个矩阵。问题出在get_row_col()函数中的scanf上,解决方式是在fgets中加入清除缓存的循环。




你可能感兴趣的:(gcc)