手把手教你解决微软Visual Studio 2022的scanf()返回值被忽略问题(图文详解)
大家好,我是荔园微风,作为一名在IT界整整25年的老兵,听闻广大初学者在学习Visual Studio 2022时,刚上手用其写C/C++程序时,总是会被一个问题困惑,这个问题叫: scanf()返回值被忽略。我们一起来看一下。
比如写了一个计算圆周的程序,结果还没运行, scanf()下方就出现绿线:
然后把鼠标移到绿线上,出现“scanf()返回值被忽略”的字样,让人莫名其妙。
如果你一定要运行,就会报错,报错内容为:
已启动生成…
1>------ 已启动生成: 项目: Project3, 配置: Debug x64 ------
1>Scanf2.c
1>F:\vs2022\Code\SL\05\07\Scanf2.c(10,2): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>已完成生成项目“Project3.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
其实这个提示真的是容易让人误会,真相是Visual Studio 2022认为scanf()这个函数不安全,所以Visual Studio 2022希望你用更安全的函数scanf_s()。所以你只要把函数改一下名就可以了。或者你可以在程序开头添加#define _CRT_SECURE_NO_WARNINGS,用这个方法也可以解决问题。
但我今天要教大家一个方法更加轻松,尤其是在学习编程时更好用,你学习编程时一般都是建一个项目 ,然后在里面反复添加、编译、运行、删除代码吗,如果是这样,你直接右击项目名称,然后点“属性”:
然后,会打开一个对话框,再点下图左边的“所有选项”,再点SDL检查:
把这个选择后面的值改为“否”,就可以了^_^
这样的话,只要你在一个项目下修改代码,只需要设一次就好,是不是很方便?
各位小伙伴,这次我们就说到这里,下次我们再深入研究Visual Studio 2022这个强大的工具,相信你一定能喜欢上Visual Studio 2022。如果要转载我的文章请说明出处哦。
作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。
码农高射炮: 如果不需要,可以右键项目属性-》C/C++-》预编译头-》选择不使用预编译头即可
老爹@: 这是一篇高质量的好文,深度理解和清晰的表达方式使复杂的技术概念变得容易理解,值得收藏点赞。博主用心很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享,期盼博主能够光顾我的博客,给予宝贵的指导!
、在下李楚卿: 我想问问博主,作业和进程的区别具体体现在哪些方面呢?Windows里面有作业么?有什么作业的例子吗?
infinite heart: 厉害,这可比安装MSDN方便多了
ycjnx: "我编他个十八个变量,...而且我还不提供文档,..." 哈哈,楼主太有才了,其实,那个年代真正能理解MFC的国内学者也没几个,现在能真正象楼主这样能够说透的人也没几个,感谢楼主的热忱奉献,阅读您的文章让我受益匪浅,谢谢!