关于这个问题也是对于小白的我困惑的很是难受,也是收集了一些这方面的信息,基本上都是干货就,若是有不足和疏忽错误的地方还望见谅~
首先就是第一个解决方法:
在输入时将scanf改输入为scanf_s,也就是在后面加上_s。
这是因为由于编译器Visual Studio 的原因Microsoft公司觉得scanf不安全因此自定义的scanf_s,在ANISC中只有scanf(),没有scanf(),因此会导致跨平台具有了一定的局限性,在通常跨平台时会出现报错的现象,所以第一种方法是不推荐的;这里的安全性也间接体现了解决的方法,后面会将到;
第二个解决方法:
打开Visual Studio 2022,点击上方调试窗口,最下面一行有一个调试属性,前面的是文件名点击进入。
在常规选项中找到SDL检查将是(/sdl)更改为否(/sdl-), 这里还没结束接着看下一个更改的地方。
仍然是在这个选项卡中,依次找到代码生成,安全检查,将启用安全检查(/GS)改为禁用安全检查(/GS-),到这里第二种方法就结束了,但这个方法也有一定的局限性,就是只会在当前这个项目文件夹(就是前面所说到的调试属性的那串字符)有这个效果不报错。如果你觉得麻烦以后都不想再去因为这个问题提前设置这些东西,还有更好的方法,就是设置时可能会比较麻烦,但有详细配图,手把手,包教会!
第三个解决方法:
这里有两个点,暂时性解决/永久性解决
暂时性解决:
在所创建的文件第一行加入一行代码:#define _CRT_SECURE_NO_WARNINGS 1
可以完美的解决scanf()的问题且在这个文件中所有的scanf都不需要加_s即可运行代码,但问题是总不能在每一次建立新文件时都去加这一行代码吧!未必有点太麻烦了,这时我们要想办法让他在生成每一个文件时都自动生成这个文件,不就完美解决了嘛~
永久性解决:
大概思路就是我们要找到我们所安装的位置Visual Studio并找到一个叫newc++file的文件并更改它
看图:
右击鼠标点开属性,可看到文件位置并打开此位置;
此时我们会进入到文件的位置,但这里有一个点需要注意:
打开文件时只会在IDE这里我们加上\VC\VCProjectltems即可看到newc++file这个文件夹;
此时鼠标右键以记事本的方式打开,进去之后空白的,这时就需要我们输入前面提到的那段代码
#define _CRT_SECURE_NO_WARNINGS 1
但此时又出现了一个问题,我也有遇到过就是我们把代码输入进去之后出现了一个现象无法保存,大多数是由于没有权限问题,我来分享一下我的解决方法:
首先以w11为例
首先回到桌面,按win键 对记事本以右击鼠标,并以管理员的身份运行,此时我们再次返回到newc++file文件打开并输入复制好的代码,此时就可以完美保存了,这时他会提示你是否替换,点击确定替换就OK啦~ ,再次重新点开Visual Studio 在新建的文件中第一行就会自动生成:
#define _CRT_SECURE_NO_WARNINGS 1文章来源:https://www.toymoban.com/news/detail-450372.html
此时所有的我已知的方法就完了,如果大家有更好的方法或者建议可在评论区讨论呦~文章来源地址https://www.toymoban.com/news/detail-450372.html
到了这里,关于保姆级,手把手教你解决微软Visual Studio 2022的scanf()返回值被忽略问题(每个步骤都配图且标记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!