在编译下列这个代码的时候,大家可能会发现,虽然可以编译过去,但仍然会报出如图的警告
#include<stdio.h>
int main()
{
char arr[10]={0};
scanf("%s",arr);
printf("%s",arr);
return 0;
}
警告如下图
警告中提到,scanf是不安全的,解决方法有两个,
一是将scanf替换为scanf_s,但是我们一般不采用这种方法,因为scanf_s并不是C语言中的,而是vs编译器下的,如果换为scanf_s,在另一个编译器下就可能会出问题,所以不采用。
二是使用_CRT_SECURE_NO_WARNINGS,这种方法是可行的,那么如何使用呢,步骤如下
打开你使用的vs的文件夹,找到vc(顺便说一下:VB是visual basic设计语言;VC是C,C++;VC#是visual sharp语言)
然后在vc中找到vcprojiectitems
然后在其下面找到newc++file,点击进行编辑,加入#define _CRT_SECURE_NO_WARNINGS 1,就OK了
但是有时候会出现管理员权限问题,不能改动,建议下载Notepad++,一个小插件,右击编辑可以帮助你修改。
完成之后,这个警告就再也不会出现了
如图