因为用gets函数输入数组时只知道数组开始处,不知道数组有多少个元素输入字符过长,会导致缓冲区溢出多余字符可能占用未使用的内存,也可能擦掉程序Φ的其他数据后续用fgets函数代替。
一小段代码举例:
(1) fgets函数一次读入10 - 1个字符如果少于这个字符数数按下回车
随后的fputs打印时不添加\n
而puts打印会添加\n,结果会空一行
(2) 一次读入超过10 - 1个字符则会在读取apple pie后加\0储存在数组中
打印时因为没有\n 函数fputs之后没有换行紧接着puts打印
fgets()函数读到文件结尾会返回一个空指针,代码可用0代替或者用NULL //因为暂时不常见茬此不做介绍