gets 函数在 C 语言标准库中实际上已经被废弃了,并且在现代编译器中通常不推荐或不支持使用。gets 函数的主要问题是它不安全,因为它不检查目标数组的边界,这可能导致缓冲区溢出,进而引发严重的安全问题。 如果你在尝试使用 gets 函数时遇到了问题,很可能是因为你的编译器或开发环境已经不支持这个函数了。为了解决这...
在提交问题时,不少接收字符串的时候可以用gets函数(以前确实可以),但由于get函数不提供给出足够长的输入字符串时,避免目标数组缓冲区溢出的手段。 std::gets 于 C++11 被弃用,并于 C++14 移除。 可使用 std::fgets 替代。也就是说现在只要用C++11及以后版本的标准,gets函数都不能再用了 不过,我们可以使用#d...
在C11标准中,gets()函数已被弃用,有些编译器可能不再提供该函数。你可以查看编译器的文档,确认是否支持gets()函数。 确保你正确地包含了头文件<string.h>,因为gets()函数的声明在该头文件中。 确保你的输入没有超过目标字符串的长度。如果超过了长度,会导致缓冲区溢出,可能会发生未定义的行为。你可以使用fgets(...
创作声明:包含 AI 辅助创作 C++中不再推荐使用gets()函数的原因是因为它存在安全漏洞。gets()函数用于读取用户输入的字符串,但它没有提供缓冲区溢出保护机制,这可能导致缓冲区溢出攻击。缓冲区溢出是一种常见的安全漏洞,攻击者可以利用它来修改程序的内存内容,执行恶意代码或者破坏程序的正常执行流程。 为了解决这个问...
C++中的gets函数已经被弃用,因为它不能有效处理输入溢出,容易导致缓冲区溢出攻击。更安全的替代方案是使用fgets函数,它可以指定缓冲区大小,从而防止溢出。例如:正确的输入方式应该是:char str[100];fgets(str, 100, stdin);此外,C++11引入了std::getline函数,它在读取输入时会自动处理换行符,提供...
在较新的C标准中,`gets()`函数已经被废弃,不再建议使用,因为它存在安全性问题(缓冲区溢出)。取而代之的是使用`fgets()`函数来读取字符串。`fgets()`函数可以指定读取的最大字符数,...
不安全:由于 gets()不能指定输入数据的长度,它无法防止输入的数据过长导致缓冲区溢出。这使得 gets...
为什么gets语句我..gets函数已经被标记为obsolete,不应该使用。msvc和glibc都已经移除了gets,但mingw暂时还保留着,所以你仍然可以在dev c++中使用gets。即便如此,也不鼓励使用它,应该用
C11声明不建议用gets,gets有漏洞,部分编辑器不可以运行,部分可以运行但是会报错