66问答网
所有问题
C语言中调用gets()函数进行字符串输入时警告我gets is unsafe,是什么原因啊?
如题所述
举报该问题
推荐答案 2014-10-16
gets不检查内存越界,本质上就是不安全的,可以改用微软提供的gets_s函数,或换用其他方法输入
追问
越界后的那部分输入就丢失了对吗?那界限shiduoshao
追答
没有丢失,而是写入后续的线性内存空间,所以有可能会覆盖内存空间中的其他数据
追问
嗯,谢谢
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/n2p9ip9nDi2pxnviis.html
相似回答
C语言
如何求一个二维数组有几行,还有为
什么
会提示
gets()是
一个未...
答:
一、编译器支持gets库函数,但是你没有包含头文件#include<stdio.h>;二、编译器本身不支持gets库函数
,因为gets函数是一个不安全函数,容易导致数组越界,所以很多编译器都不再有这个库函数了。取而代之的是gets_s或者fgets这类相对安全的函数,可以试试。
C语言
结构体为
什么
用
gets
和puts
输入
和输出 经常出现错误?
答:
gets
从标准输入设备读
字符串函数
。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这...
c语言
:如图,请问一下哪里出错了?
答:
首先解答一下这个C语言代码出错的原因:
第一个gets未定义:出现这个错误一般是没有包含相应的头文件,或者库里没有这个函数
。这里应该是没有这个函数。gets(char *dest)是一个老的库函数,采用这个函数存在越界的安全隐患。它只有一个参数,如果输入的字符个数超过dest内存空间,程序可能失败,也可能被黑客...
C语言
程序
中gets()
怎老是在执行时自动跳过不接受
输入?
答:
用 f
gets(
book[i].bn, 100, stdin);这种形式输入。回车换行符就会含在
字符串里,输入
不会读乱。读入
的字符串
长度等于 strlen(book[i].bn);最后一个字符是 '\n'把它赋成 '\0' 就从字符串里清除了。
c语言的gets函数
编译不成功阿,很短的程序?
答:
C语言的gets函数
一般包含在stdio.h头文件里,如果没有包含比头文件那可能会有问题。第二种情况包含了还出问题,说明你的编译器已经不支持这个函数了,这个函数非常不安全,容易造成溢出,建议换成fgets函数。函数原型:char *f
gets(
char *buf, int bufsize, FILE *fp);参数解释:参数一是
输入字符串
...
...链表
,字符串输入时
scanf 和
gets
之间
的
问题?
答:
原因是scanf和gets处理方式不同:前者是按字符读并依次处理后放入对应的变量中,通常遇到换行符'0x0A'才结束,单不读入这个换行符,所以这个换行符还在缓冲区中,而后者读入时遇到换行符中止,且抛弃换行符。所以,你那里把scanf换成
gets时
由于之前(26行)的scanf还留有一个换行符
,gets
直接读入了这个换行...
大家正在搜
c语言怎么用gets输入字符串
gets函数怎么输入字符串
用gets函数输入字符串
gets函数用来输入一个字符串
输入字符串gets printf
c语言输入字符串gets
如何用gets输入字符串
用gets输入两个字符串
用gets输入多组字符串
相关问题
为什么在c语言中使用gets函数是危险的
关于C语言中gets()函数的问题
C语言中,用gets()函数接收字符串,会在最后自动加上字符...
关于C语言里的gets()问题,为什么名字输入被跳过?
C语言中运用gets函数,是不是一定需要头文件声明#incl...
还有没有没睡的学生党?来看看C语言输入函数gets的问题 我...
c语言,gets函数的详细用法?
在C++中对字符串的输入是什么函数,像C中的gets()函数...