首页 > 其他分享 >C语言 scanf gets fgets区别

C语言 scanf gets fgets区别

时间:2023-09-21 11:46:16浏览次数:37  
标签:读取 scanf printf fgets gets 输入

scanf

scanf 是一个格式化输入函数,用于从标准输入(通常是键盘)读取数据。

    char s[128];

    printf("please input string s:\n");
    scanf("%s", s);

    printf("output:\n");
    printf("%s\n", s);

注意scanf遇到空格、回车、Tab都会结束
image

gets

gets 是一个不安全的函数,它从标准输入读取一行文本并将其存储为字符串。

    char t[128];
    printf("please input string t:\n");
    gets(t);

    printf("output:\n");
    printf("%s\n", t);

image

fgets

fgets 用于从指定的输入流中读取一行文本,通常从文件中读取。
它需要指定一个字符数组来存储读取的文本,以及要读取的最大字符数和输入流。
fgets 会读取指定字符数或直到遇到换行符(包括换行符),并将结果存储在字符数组中。
与 gets 不同,fgets 提供了安全性,因为它限制了最大读取的字符数,避免了缓冲区溢出。

    char k[128];
    printf("please input string k:\n");
    fgets(k, 128, stdin);

    printf("output:\n");
    printf("%s\n", k);

image

小结

scanf 用于格式化输入,需要谨慎处理输入缓冲区的问题。
gets 已被弃用且不安全,应避免使用。
fgets 用于安全的行文本输入,通常从文件中读取。它是安全且可靠的选择,但需要处理换行符。

标签:读取,scanf,printf,fgets,gets,输入
From: https://www.cnblogs.com/eezhijun/p/17719548.html

相关文章

  • android中的VERSION和VERSION_CODES和compileSdkVersion, minSdkVersion 和 targetSdk
    一背景经常会有代码中用到  Build.VERSION.SDK_INT<Build.VERSION_CODES.O,这是指什么意思。在app项目中,经常会看到android{compileSdkVersion30buildToolsVersion"30.0.3"defaultConfig{applicationId"com.yl.qrcode"minSdkVersio......
  • 【C语言】scanf多组输入的三种方法!
    (文章目录)前言  <fontcolor=green>......
  • Unity 性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法
    Unity性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法点击封面跳转下载页面简介Unity性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法在Unity开发中,性能优化是一个非常重要的方面。一个常见的性能优化技巧是使用ShaderUtil.GetSha......
  • Unity 性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法
    Unity性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法点击封面跳转下载页面简介Unity性能优化Shader分析处理函数:ShaderUtil.GetShaderGlobalKeywords用法在Unity开发中,性能优化是一个非常重要的方面。一个常见的性能优化技巧是使用ShaderUtil.GetSh......
  • Qt实现QWidgets窗口圆角效果
    对于Qt里其它多数控件,我们可以直接通过设置qssborder-radius:?px;的方式来实现圆角。而我们最常用的窗口QWidget的qss却并不支持这一属性。StackOverFlow上的大佬@hank则给出了一种使用QPainter和遮罩的解决方式:首先#include<QPainterPath>,然后构造你的QWidget。在下文中我......
  • Tomcat7+ 弱口令 && 后台getshell漏洞
    目录Tomcat7+弱口令&&后台getshell漏洞1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证Tomcat7+弱口令&&后台getshell漏洞说明内容漏洞编号漏洞名称Tomcat7+弱口令&&后台getshell漏洞漏洞评级高危影响范......
  • Tomcat7+ 弱口令 && 后台getshell漏洞
    Tomcat7+弱口令&&后台getshell漏洞环境说明Tomcat支持后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。Tomcat7+权限分为:manger(后台管理)manger-gui拥有html页面权限manger-status拥有查看status的权限mager-jmx拥有jmx权限......
  • 用友致远U8-OA getSessionList jsp信息泄露复现
    1.漏洞描述用友U8-OAgetSessionList.jsp存在漏洞,攻击者通过该漏洞可以获取到所有用户的sessionID,利用获取到的sessionID即可登录到系统。2.网络测绘fofa:"用友U8-OA"3.漏洞复现1.登录页面2.验证POC/yyoa/ext/https/getSessionList.jsp?cmd=getAll3.将其拼......
  • C6064:缺少“scanf_s”的整型参数(对应于转换说明符“2”
    问题描述//talkback.c--演示与用户交互#include<stdio.h>#include<string.h>//提供strlen()函数的原型#defineDENSITY62.4//人体密度(单位:磅/立方英尺)intmain(){ floatweight,volume; intsize,letters; charname[40]={0};/*声明字符串name,name是一个......
  • 推荐一款免费好用的远程桌面:Getscreen
    因为平时有多台设备要用,所以远程桌面是我经常要使用的工具。最近,正好看到一款不错的远程桌面软件,马上拿出来推荐给大家,如果有需要的可以看看。今天要推荐的远程桌面软件就是这款叫Getscreen的软件,推荐理由挺简单,就3点:简单易用:只需要两步就能轻松连上远程桌面第一步:在需要被......