天天看點

_CRT_SECURE_NO_WARNINGS錯誤提示,解決辦法

#include <stdio.h>
 
int main(void)
{
    char str[256] = {0};
    scanf("%255s",str);
    printf("Hello World!\n");
    printf("%s\n",str);
    return 0;
}           

一個簡單的C的Hello World,如果用高版本的VS來編譯,會提示

'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.           

這個是高版的VS預設不讓使用scanf,fopen等函數,說是scanf,fopen等函數不安全,而代替其函數的是scanf_s,fopen_s等函數,後邊有個"_s"的形式

想要使用,可以在源檔案開頭加個:

#define _CRT_SECURE_NO_WARNINGS           

右擊工程 - 屬性 - 配置屬性 - C/C++  - 指令行
指令行增加:/D_CRT_SECURE_NO_WARNINGS           

效果都一樣,就是預編時處理一下,加個宏而已,讓其忽略安全檢測

#define _CRT_SECURE_NO_WARNINGS
//添加到頭行,添加到stdio.h等頭檔案後還是會出警告的
#include <stdio.h>
 
int main(void)
{
    char str[256] = {0};
    scanf("%255s",str);
    printf("Hello World!\n");
    printf("%s\n",str);
    return 0;
}