<C语言学习>scanf和scanf_s的区别
- scanf()不会检查输入的边界,因此输入的数据可能会溢出,导致程序出错
- scanf_s()更安全,其会检查输入的边界
如:
char ch[6];
scanf("%s",ch);
若此时输入数据为abcdefghijk,则f以后的内容将溢出到别的空间,可能会导致程序运行错误
若使用
scanf_s("%s",ch);
则输入数据abcdefghijk,只会接受abcdef六个输入,其余的不接受
若是
scanf_s("%s",ch,6);
则输入数据abcdefghijk,只会接受abcde五个输入,因为ch[6]要放置"\0".
PS:输入字符串时建议使用这个
PS:
scanf_s()最后一个参数n是接收缓冲区的大小(即ch的容量),表示最多读取n-1个字符.
输入 字符串 时建议使用接受3个参数的scanf_s(),并且注意输入时长度不要超过n(容量)-1;
输入数字可使用接受2个参数的scanf_s()vs2017已经不再使用scanf()输入数据,只能用scanf_s(),否则会报错
本人仍处于摸索阶段,以上仅为个人阅读文章及实践后的一些理解
<C语言学习>scanf和scanf_s的区别相关推荐
- 浅谈scanf和scanf_s的区别,以及应对VS返回值被忽略的报错问题。
文章目录 前言 一.scanf和scanf_s是什么? 二.分别分析 1.scanf 2.scanf_s 3其实scanf和scanf_s在使用时只会在vs中有不同. 前言 随着IT行业的火爆,不少初 ...
- scanf() 与 scanf_s() 的区别
scanf() 函数 : scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息. 其调用格式为:scanf("<格式化字符串>",<地址 ...
- scanf与scanf_s的区别
自从用VisualStudio2015之后就不愿再去使用Visual C++6.0了,但是最近在学数据结构图时,总是在字符的连续输入遇到困惑. 使用VS都知道,要用scanf_s对键盘读入数据. sc ...
- scanf()与scanf_s()的区别
scanf() 函数 : scanf() 函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息. 其调用格式为:scanf("<格式化字符串>",<地址 ...
- R语言学习:mode与class区别
看书的时候看到书上说用mode()函数查看向量的类型,想起以前都是直接用class查类型,感觉自己混淆了两个函数的具体作用,那么这两个类型是否有什么区别呢? mode mode()返回的结果主要有: ...
- c语言scanf错误c4996,C语言杂谈(一)scanf()、scanf_s()与错误 C4996
错误 C4996 初学C语言时,第一个接触到的I/O函数便是scanf()了.但在高版本的 Visual Studio (包括但不限于2015.2013.2012)编译代码时,却会出现意想不到的错误. ...
- C语言中,scanf与scanf_s的简单区别
C语言中,scanf与scanf_s的简单区别 scanf()不会检查输入边界,可能造成数据溢出,scanf_s()会进行边界检查. 如name[5], scanf("%s",na ...
- IOS学习笔记07---C语言函数-scanf函数
2013/8/7 IOS学习笔记07---C语言函数-scanf函数 ------------------------------ qq交流群:创梦技术交流群:251572072 ...
- C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)
C语言数组 数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等. 一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...
最新文章
- 十六、字符驱动及应用
- JavaScript 内置对象(一):Array 对象(构造函数、属性和方法)
- centos 更改mysql数据库目录位置_centos更改MySQL数据库目录位置
- 收藏|2021年阿里云开源镜像站最热门镜像王全梳理(附下载链接和Top20镜像王排名)
- 11. Container With Most Water
- Android控件— — —ImageView
- 今年四月份,发现我的文章被人全部复制了,抄到博客园了,连原文出处都没有,就算你写个参考文章也行呀
- 【Oracle】RedHat 6.5 安装 11g数据库
- 《How to debug PS4 game》
- python画立体温度分布图_Origin绘制3D立体温度分布图的方法
- cad2014点击工具栏闪退_cad2012闪退,点工具栏闪退但用快捷键画图不闪退
- 品荔枝赏文化,美丽乡村不一样的嘉年华
- 科技创新就要高浓度、高密度
- 推荐两款github敏感信息搜集工具(gsil、gshark)
- 类型 List 不是通用的;不能使用参数() 将它参数化
- 在安装office2003时,出现安装程序包的语言不受系统支持的错误,如何解决?
- php eot,php中理解print的EOT分界符
- DIY手动定制一个属于自己的软件安装管理器工具盘[二]
- 基于matlab山脊线,基于Matlab的标记分水岭分割算法
- Oracle 12c 创建新用户报错 - ORA-65096