gets函数的用法

如题所述

gets函数的用法就是从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为\0空字符,并由此来结束字符串。读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。

因为本函数可以无限读取,易发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值。

C语言中gets的用法

在C语言中,gets函数是一个标准库函数,用于从标准输入设备读取字符串。然而,由于存在安全问题,它已经在现代编程中被废弃,不推荐使用。gets函数会将读取到的字符串存储在str指向的内存空间,并在遇到换行符、文件结束符或接收到EOF信号时停止读取。

然而,由于gets函数无法控制输入的字符串长度,如果输入的字符串超过str数组的容量,就会导致缓冲区溢出。因此,使用gets函数时需要特别小心,避免出现安全问题。如果需要读取字符串,建议使用fgets函数,它能够限制输入的字符串长度,避免缓冲区溢出的问题。

以上内容参考:百度百科—gets

温馨提示:答案为网友推荐,仅供参考
相似回答