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

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
  • 两个电容并联接电源2024-11-22 08:00:59
  • http的options2024-11-22 08:00:59
  • jvm检测工具2024-11-22 08:00:59
  • 在线编译器怎么实现2024-11-22 08:00:59
  • k2p哪个固件2024-11-22 08:00:59
  • cjson.dll2024-11-22 08:00:59
  • jmap使用详解2024-11-22 08:00:59
  • fork函数的作用2024-11-22 08:00:59
  • matlab求和∑函数例题2024-11-22 08:00:59