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

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利用原版的不安全性(漏洞)黑掉系统。

  • 上一篇: http的options
  • 下一篇: fork函数的作用
  • 版权声明


    相关文章:

  • http的options2024-11-22 08:00:59
  • 直流电机必须用l298n驱动吗2024-11-22 08:00:59
  • try again later云顶之弈2024-11-22 08:00:59
  • 微信小程序源码免费下载2024-11-22 08:00:59
  • k2p高恪固件评测2024-11-22 08:00:59
  • fork函数的作用2024-11-22 08:00:59
  • 指针+i2024-11-22 08:00:59
  • uvm实战2024-11-22 08:00:59
  • j2s2j2024-11-22 08:00:59
  • python中argparse2024-11-22 08:00:59