其他分享
首页 > 其他分享> > scanf_s()与scanf()——Visual Studio

scanf_s()与scanf()——Visual Studio

作者:互联网

scanf_s()前身——scanf()

有的教材里用的scanf(),其实在目前Visual Studio版本中已经弃用了,用scanf_s()函数代替了。(这也就是为什么Visual Studio不能识别scanf,直接报错的原因)

为什么现在要用scanf_s()?

scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,从vc++2005开始,VS系统提供了scanf_s()。在调用该函数时,必须提供一个数字以表明最多读取多少位字符。另外,很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。

简单的理解,就是scanf_s会比scanf更安全,那么为了安全也需要编程者多传一些参数,这些参数就是变量的长度(占用的字节数)。
很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。

scanf_s()简介

参数类型可以是%d %f %c等等,具体使用上与scanf无异。
函数的返回值: 函数是int型,返回一个整型,该整型值就是scanf_s()函数所输入的个数

标签:20,函数,scanf,Visual,参数,原版,Studio
来源: https://www.cnblogs.com/2811358062qq/p/14226525.html