众所周知 在C语言中scanf用来读取一行字符串时遇到空格或回车会停止
而若要读入一行带空格的字符串时 有些人会用gets来代替
然而,gets的最大问题在于:会读取超过数组长度上限个字符,而超出长度的字符会被读进其他未被分配的内存空间,如果这段空间已经有了数据,就会导致程序错误而中断
正是由于此缺陷,在C11标准中直接抛弃了gets,这个时候我们可以用fgets来替代gets
char *fgets(char *buf, int bufsize, FILE *stream);
原文:https://www.cnblogs.com/chr1stopher/p/10533108.html