有时候会遇到以下报错:
而因为scanf在读取数据时不检查边界,所以可能会造成内存泄漏。VS觉得这个函数不安全,于是自己在VS编译器中提供了scanf_s这个函数,这个函数提供了边界限制。但是如果我们使用了scanf_s,我们代码的跨平台性将大大降低。解决的方法有2种。
解决办法一:
在我们要使用scanf的.c(c)或.cpp(c++)文件的第一行添加一行代码,这个1可有可无,目的是预编时处理一下,加个宏而已,让其忽略安全检测。
#define _CRT_SECURE_NO_WARNINGS 1
解决办法二:
在我们要使用scanf的.c(c)或.cpp(c++)文件中添加代码,这是为了让某个警告或者错误失效。
#pragma warning(disable:6031)
这样就可以正常使用scanf函数啦!