getchar的用法

img

img

请问读取一个n行数组这两个前面有什么区别呢,为什么第一个要加getchar

scanf()会忽略开头的换行符,也就是说在你输入一个数字按下回车后,你的换行符并不会被scanf读取,它仍然在缓存区中,但是gets并不会忽略换行,它会将缓存区中换行符读取并舍弃换成 '\0' 。
这就是为什么第二个要加 getchar(),它是为了将第一次scanf()读取数字时将缓存区中的换行取走,避免被gets读取。

吸收回车键