当前位置:网站首页 > 技术博客 > 正文

c语言中的scanf相当于c++中的什么



scanf()函数是标准C中提供的标准输入函数,用以用户输入数据

scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,从vc++2005开始,VS系统提供了scanf_s()。在调用该函数时,必须提供一个数字以表明最多读取多少位字符。

原因和区别:

scanf()在读取数据时不检查边界,所以可能会造成内存访问越界:

 

以上代码如果用

scanf_s

()则可避免此问题:
 

注: scanf_s最后一个参数n是接收缓冲区的大小(即buf的容量),表示最多读取n-1个字符.

PS: 很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。

版权声明


相关文章:

  • 单行文本溢出隐藏2024-11-22 08:00:59
  • 小米路由r2d刷潘多拉2024-11-22 08:00:59
  • 编写swap函数实现两数交换利用指针2024-11-22 08:00:59
  • DDOS攻击软件手机版下载2024-11-22 08:00:59
  • mac搜不到移动硬盘2024-11-22 08:00:59
  • 数据库左右内外连接(详细,易懂)2024-11-22 08:00:59
  • python隐藏cmd2024-11-22 08:00:59
  • k2p哪个固件2024-11-22 08:00:59
  • 什么是 csrf 攻击,如何避免?2024-11-22 08:00:59
  • css溢出文字隐藏显示省略号2024-11-22 08:00:59