原文:c中使用gets() 提示warning: this program uses gets(), which is unsafe.

今天在C代码中使用gets 时提示 warning: this program uses gets , which is unsafe. ,然后这个程序还能运行,无聊的我开始查阅资料,为啥gets 会unsafe呢。 通过Google查阅前辈的问答,原来是这么回事。 gets 这个函数只有一个参数,那就是字符缓冲区的指针,并没有指定该缓冲区的长度也就是大小。当你输入一个很长很长的字符串的时候,ge ...

2016-03-11 10:12 0 4479 推荐指数:

查看详情

C】你还在用gets()吗?

  学过C的都知道gets()函数是用来接收字符串的一个函数,以前用的时候感觉挺好使的,但是今天碰到了一个问题。   本人写的程序如下:   这个程序最简单不过了,就是一个字符串输出输入的问题,但是使用linux下的gcc编译老是不能通过,提示的问题是 ...

Tue Nov 27 01:25:00 CST 2012 12 32984
cgets函数使用可能导致缓冲区溢出

头文件:#include <stdio.h>gets()函数用于从缓冲区中读取字符串,其原型如下: char *gets(char *string);gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数 ...

Fri Dec 09 22:56:00 CST 2016 0 2437
VS2017gets使用

由于动态规划的LCS问题,需要从第一个字符开始读取比较方便。所以用gets_s();第一个参数是起始位置,第二个参数是字读取字符的长度。 #include<bits/stdc++.h> #include<cstdio> using namespace std ...

Mon Sep 03 06:03:00 CST 2018 0 4187
C语言中的gets()函数

c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串, 比如:I love MIT 这种情况,scanf()就无能为力了。这时我们最先想到的是用gets()读取. C标准库中的 gets() 函数 ...

Wed Jun 10 11:14:00 CST 2020 0 736
Linux 下使用C语言 gets()函数报错

在Linux下,使用 gets(cmd) 函数报错:warning: the 'gets' function is dangerous and should not be used. 解决办法:采用 fgets(cmd,100,stdin);//100为size 问题解决 ...

Tue Dec 15 06:54:00 CST 2015 0 2537
Linux C getline, gets, fgets 函数区别

getline, gets, fgets都支持从标准输入读取一行字符串,那么它们有什么区别呢? 解答: gets 不推荐使用gets(s) 等价于 fgets(s, INT_MAX, stdin),因为没有对缓冲区溢出做处理,不安全; getline 碰到EOF返回-1,fgets ...

Tue Sep 28 02:59:00 CST 2021 0 72
c语言中gets()的详细用法

gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。 从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串 ...

Sun Sep 10 06:04:00 CST 2017 2 11955
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM