首页 > 其他分享 >scanf在VS中报错

scanf在VS中报错

时间:2023-07-22 10:13:28浏览次数:39  
标签:函数 CRT NO scanf VS 报错

为啥在VS中使用scanf,strcpy strlen strcat 等函数会有警告呢?
scanf是c语言提供的函数,但函数本身自带安全性问题,微软工程师为了解决这些安全问题,在VS2013以上的版本上添加了scanf_s 这类函数。
scanf_s vs编辑器提供的,虽然提高了安全性能,但移植性太差,故不建议使用。

解决办法:

1、打开“项目”——“ConsoleApplication1属性”,在VC++的预处理器定义部分添加_CRT_SECURE_NO_DEPRECATE即可。

2、顶部加上这一段#define _CRT_SECURE_NO_WARNINGS 宏定义

 

scanf和scanf_s的区别?

scanf有安全漏洞,具体体现在以%s接受输入的数据时(%c,%d,%f之类的没什么影响),多余的数据读多了,或者没读完(易被黑客利用),在VS2005版本中微软发布了scanf_s以替代scanf,所以在功能上两者最大的区别是安全性。

scanf_s需要更多的参数(即输入数据所占的字节数),我们可以看到scanf_s("%c",&a);有明显的警告,但程序依旧可以跑起来,影响不大。

但如果是scanfs("%s",arr);的话,直接程序崩溃,感受到差别了吗,你可以这么认为scanf_s就是为%s而生的,必须传参数

 

标签:函数,CRT,NO,scanf,VS,报错
From: https://www.cnblogs.com/yuyanc/p/17572896.html

相关文章

  • reportlab报错“JPEG Unsupported JPEG marker: cb”
    报错信息reportlab.pdfbase.pdfdoc.PDFError:JPEGUnsupportedJPEGmarker:cbreportlab.pdfbase.pdfdoc.PDFError: ImagingLibrarynotavailable,unabletoimportbitmapsonlyjpegsfileName='PDFtool/data/img1.png'identity=[ImageReader@0x2866c5ad6f0f......
  • vscode常用快捷键
    VSCode快捷键整理1,搜索Ctrl+F:查找Ctrl+H:替换2,行操作剪切一行:Ctrl+X复制一行:Ctrl+C删除一行:Ctrl+Shilft+KAlt+↑/↓:向上/向下移动行Movelineup/downShift+Alt+↓/↑:向上/向下复制行Copylineup/down3,导航F12Alt+←/→ :返回/前进Goback......
  • 在vscode中配置git
    1.配置VsCode的Git地址1.1.打开“文件”-“首选项”-“设置” 搜索git.path  打开setting.json1.2.添加“git.path”:“Git实际安装地址”VsCode中git路径的设置(window系统)---参考文章https://code84.com/767977.html2.在vscode中,默认提交到master分支2.1.有文件更改......
  • 文心一言 VS 讯飞星火 VS chatgpt (64)-- 算法导论6.5 3题
    文心一言VS讯飞星火VSchatgpt(64)--算法导论6.53题三、要求用最小堆实现最小优先队列,请写出HEAP-MINIMUM、HEAP-EXTRACT-MIN、HEAPDECREASE-KEY和MIN-HEAP-INSERT的伪代码。文心一言:以下是使用最小堆实现最小优先队列的HEAP-MINIMUM、HEAP-EXTRACT-MIN、HEAP-DECREA......
  • ssh连接设置更改数据库名不起效果,连接127.0.0.1更换127.0.0.22也不报错
    ssh连接设置更改数据库名不起效果,连接127.0.0.1更换127.0.0.22也不报错 浏览器缓存清除后也一样。更换浏览器一样tomcat重启无效work目录全部删除无效myeclipse重新build工程无效重启myeclipse无效tomcat程序不指向工程下的webroot改为发布到webapp无效更换端口为8081的tomcat6无......
  • Flutter开发VSCode快捷键
    快速创建widget:在dart文件中输入stf或stl出现提示后按⏎即可快速修复:⌘ + .自动生成构造函数:选中final参数,快捷键:⌘ + .添加父组件、变为子组件、删除子组件:⌘ + .重新打开关闭的编辑页面:⌘+ ⇧ +  T通过匹配文本打开文件:⌘ +  T代码格式化:⇧ +......
  • Mac环境下,在 VS Code下执行Run Code打印Operation not permitted
    步骤1。打开系统设置;步骤2。选择隐私与安全性;步骤3。选择完全磁盘访问权限;步骤4。添加VisualStudioCode,输入完管理员密码后重启VSCode。......
  • VS2015项目前有个蓝色的锁
     刚从svn上chenkout的项目,打开一直有个蓝色的锁,可以生成,可以运行,正常的页面修改了也有蓝色的锁,还是第一次遇到。原因不清楚,后来通过单个项目重新拿文件就好了。整个文件夹checkout会出现这个问题。在此记录下。......
  • K8S初始化报错:CRI v1 runtime API is not implemented for endpoint \"unix:///var/r
    报错具体内容:[preflight]Somefatalerrorsoccurred:[ERRORCRI]:containerruntimeisnotrunning:output:time="2023-07-21T09:20:07Z"level=fatalmsg="validateserviceconnection:CRIv1runtimeAPIisnotimplementedforendpoint\"un......
  • 【问题解决】docker版本v23.0后,构建Dockerfile中FROM私库镜像报错构建失败
    问题情况Docker版本在v23.0以后,只要Dockerfile中FROM的私库镜像不存在本地,就会报错:#我本地是v24.0.2版本Docker[root@localhostipd]#dockerbuild.-tharbor.xxx.com.cn/test/bap:2.7.1[+]Building0.6s(3/3)FINISHED......