fgets和gets的区别
时间: 2023-06-18 15:04:51 浏览: 226
Chapter3IO,c语言gets源码,c语言项目
fgets和gets都是C语言中用于从输入流中读取字符串的函数,但是它们有以下区别:
1. gets()函数存在缓冲区溢出的风险,因为它不会检查输入的字符串长度是否超过了缓冲区的大小。而fgets()函数则可以指定读取的最大字符数,避免了缓冲区溢出的风险。
2. gets()函数只能读取一行数据,即以换行符为结束符。而fgets()函数可以读取指定长度的字符,包括换行符。
3. gets()函数不会保留换行符,而fgets()函数会将换行符一起读取并存储到缓冲区中。
4. gets()函数在读取到文件结束符时(EOF),会返回NULL。而fgets()函数则在读取指定长度的字符或者读取到文件结束符时返回NULL。
综上所述,fgets()函数更加安全,可以避免缓冲区溢出问题,而且可以读取指定长度的字符。在实际开发中,建议使用fgets()函数来读取用户输入的字符串。
阅读全文