这次就说一下,gets(),gets_s(),fgets(),;;;;【在某一篇博客上看到的】

C的标准库gets函数不对接受字符串的buffer进行边界检测,会造成越界,从而产生bug;

fgets函数,数获取的字符串与gets函数获取的不一样,fgets函数获取的字符串会在buffer里面保留换行符,而gets函数不会;也就是说最后一个是换行符

gets_s函数,可以像gets一样不会获取换行符,也不会有gets的越界问题。所以gets_s函数是一个标准库扩展函数,一个可选项;所以就不知道这个gets_s函数在各个编译器下的支持情况如何!

gets,fgets,gets_s的用法

1.gets()

char s[10];
gets(s);

2.fgets()

注意他会读入换行,不行你试一下这一段程序;;;;;;(很伤)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char input[10];
    while (fgets(input,10,stdin) != NULL)
    {
        printf("%s",input);
    }
}

3.gets_s()

不会;也不用;

来自某大牛【萌新不懂】:

个人不推荐使用ms提供的函数
且gets_s第二关参数是 缓冲区大小

gets,gets_s,fgets函数相关推荐

  1. gets 函数 - fgets 函数 - scanf 函数 - gets_s 函数 - 字符串最后一个单词的长度

    gets 函数 - fgets 函数 - scanf 函数 - gets_s 函数 - 字符串最后一个单词的长度 1. gets 函数 在 C 语言中,while 循环的功能和它在其他语言中一样.它首 ...

  2. c语言gets()函数与它的替代者fgets()函数

    在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回.如果要读取一行字符串,比如: I love BIT 这种情况,scanf() ...

  3. 【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )

    文章目录 一.fgets 函数 二.fputs 函数 三.按照文本行的方式写文件 四.按照文本行的方式读文件 一.fgets 函数 fgets 函数 : 从 FILE *stream 指针指向的文件中 ...

  4. C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中)

    C语言fgets()函数(以指定长度读取文件中的字符,并存入字符数组变量中) 需要引入C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 测试(确实只能读n-1个 ...

  5. c语言fgets函数的用法

    fgets()函数用于从文件流中读取一行或指定个数的字符,其原型为:     char * fgets(char * string, int size, FILE * stream); 参数说明: s ...

  6. C语言学习笔记---fgets()函数和fputs()函数

    fgets()函数   fgets()函数和gets()函数一样,都是读取字符串,不过gets()函数通常用来从键盘读取输入的字符串,fgets()函数可以通过文件来读取字符串.下面通一个例子来演示f ...

  7. gets和fgets函数及其区别,C语言gets和fgets函数详解

    gets和fgets函数及其区别,C语言gets和fgets函数详解 每当讨论 gets 函数时,大家不由自主地就会想起 1988 年的"互联网蠕虫",它在 UNIX 操作系统的 ...

  8. fgets()函数的使用分析

    1.fgets函数的特点: 读取n-1(n为数组个数,第n个位置会自动添加'\0')个字符,以'\n'为结束标记,并在读取到'\n'之后,在末尾处添加'\0'构成字符串: 当读了n-1个字符后,仍未读 ...

  9. fgets 函数用法

    来说一说fgets(..)函数.     原型  char *  fgets(char * s, int n,FILE *stream);     参数:          s: 字符型指针,指向存储 ...

最新文章

  1. 18-flutter的Future和FutureBuilder
  2. 20年的嵌入式开发经验总结
  3. python 内存释放gc_python 内存释放问题,高手请帮帮忙
  4. ProtonMail 开源其所有电子邮件应用程序
  5. 关于System.Web.Caching的“未将对象引用设置到对象的实例”错误
  6. STL 之vector详解
  7. HTTP协议SSL协议HTTPS协议
  8. 【学习笔记】SAP CO成本估算相关
  9. 无数种求逆元的方法总结
  10. Qt中Q_OBJECT与生成的moc文件的作用
  11. php调用一个c语言写的接口问题
  12. sysstat工具包提供的主要命令
  13. IKBC NEW POKER 替换固件使用独立方向键
  14. 杭州亲历重要时间点记录
  15. 【CSS 遮挡和剪切属性 Masking】
  16. 如何优雅的在 Word 中插入代码,PlanetB 的完美替代方案
  17. 论文阅读:Recurrent Neural Networks for Time Series Forecasting Current Status and Future Directions
  18. 如何使用python进行自动网上考试
  19. 文件为只读模式,且无法更改权限
  20. 手把手教你 centos7 安装 OpenLDAP 2.4.44 实战

热门文章

  1. Java——StringUtils
  2. 【OBS-WEBRTC】obs-output 集成libwebrtc 采坑
  3. Python的wheel文件安装
  4. devc++ value of xxx too large for field of 4 bytes at xxx 并且源文件未编译
  5. MarkDown: 为字体添加颜色
  6. HashSet和HashMap
  7. 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(五)
  8. 盲信号分离的实际应用
  9. IP网络主动测评系统
  10. 【源码】二维平面应力问题中的弹性材料模型仿真