1、gets()
在读取字符串是,scanf()和转换说明%s只能读一个单词,但是在程序中经常要读一整行输入。所以gets()函数就出现了,gets()函数简单易用。其特点如下:
(1)、代入参数只有一个。
(2)、读取一整行,终止于换行符。
(3)、丢弃换行符并换成空字符进行存储。
传入参数只有words,无法检查数组是否装得下。如果输入过长的字符串会导致缓冲区溢出,但是如果这些溢出的字符只是占用了尚未使用的空间,就不会立即出现问题,如果它们擦除程序中的其他数据,就会导致异常终止。有人通过利用gets()插入和运行破坏系统安全的代码,所以C11标准直接将其废除。
2、fgets()
fgets()通过第二个参数限制读入的字符数来解决溢出的问题。该函数是专门设计于处理文件输入。所以一般情