1.出现“返回值被忽略:“scanf”问题详解”这个问题的原因
这是因为vs开发者认为scanf这个函数不安全,所以给出了警告
2.如何解决这个问题呢?
其实我们通过vs所给出的这个警告提示就已经有答案了
(1)就是 Consider using scanf_s instead(运用scanf_s来进行替换scanf)
图一是用的scanf函数,程序发出警告,运行不通过
图2是将scanf替换为scanf_s后,程序成功运行
但是这种方法有局限性,他只在vs所特定的编译器上才可以进行识别,换个其他的编译器就不能进行识别了,所以不推荐。
(2)use _CRT_SECURE_NO_WARNINGS (忽略这个安全警告)去解决这个问题
具体方法就是我们在我们所需写的页面第一行!!!第一行!!!第一行!!!写一个宏定义
#define _CRT_SECURE_NO_WARNINGS 就可以完美解决了
具体操作看图三
但是这种解决方案也有一个令人发狂的问题,就是我们每写一个项目都需要手动输入一次
#define _CRT_SECURE_NO_WARNINGS 这对我们来说也是很烦的一个问题,那有没有一种方法可以让我们在项目创建成功之后,系统会自动给我们补充这个宏定义呢?那答案肯定是有的,因为人类共同的习性就是 “懒”,哈哈。好,接下来我们看看这个问题怎么来进行解决。
系统自动补充“#define _CRT_SECURE_NO_WARNINGS”操作方法
1.准备一个everything工具
2.打开everything的工具界面,呈现如下
3.我们在搜索框里搜索文件“newc++file.c++”,然后找到他的文件路径,并将这个文件进行复制。
将 这个文件进行复制到桌面,记住是复制!!!复制!!!复制!!!
然后我们通过vs进行打开,然后在第一行输入“#define _CRT_SECURE_NO_WARNINGS”进行保存
保存之后,我们将这个文件拖拽或者复制到“newc++file.cpp+”这个文件路径下,进行替换,之后我们再打开vs,创建项目时,就不用再手动写这个宏定义了“#define _CRT_SECURE_NO_WARNINGS”。