两个办法轻松解决VS中”scanf返回值被忽略“问题

两个办法轻松解决VS中”scanf返回值被忽略“问题,第1张

出现原因:

        在ANSI C中只有scanf(),没有scanf_s(),但是scanf()在读取时不检查边界(忽略检查返回值),所以可能会造成内存泄漏,于是Microsoft公司在VS编译器中提供了scanf_s()(注意只有VS编译器才能识别scanf_s,非标准库函数!)。

        如果想继续在VS中使用scanf函数,可以通过以下方法解决。

1.找到并关闭VS中的SDL检查

关闭步骤:

右键“项目文件” —— “属性” —— “配置属性” ——“C/C++”——“常规”——“SDL检查”改为“否”即可

 

         

        需要注意的是,这 *** 作只作用于当前项目,而每次新建项目都要手动 *** 作一次,那有没有一劳永逸的办法呢?

2.添加#define _CRT_SECURE_NO_WARNINGS 

        直接把这句话放在程序第一行即可,但为了避免每次新文件中使用scanf函数都要加上这句话,可在newc++file.cpp中加上这句话,这样就可以和这个问题说拜拜了。

        原因是VS中新建的.c或.cpp源文件都是拷贝newc++file.cpp文件的 ,这样的话以后每次新文件都会在第一行自带上这行代码。

        可以用everything工具(一个查找文件小插件,直接搜就能找到下载)找到newc++file.cpp文件,打开后添加#define _CRT_SECURE_NO_WARNINGS  并保存文件即可。

        还有一个注意点:#define后面别漏了空格!

        我这里因为有19和22两个版本的VS所以才会有两个同名文件,一般都不会是两个的。

        这里建议先打开路径到对应文件夹去,把文件复制一份到桌面上去,在桌面打开文件并在第一行加入上面那句话,然后保存退出,再把桌面上的这份文件放回原路径中去,选择替换文件即可。

 

        你学废了吗?这样就能在VS中愉快地使用scanf了耶( •̀ ω •́ )y !

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/792364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存