在Visual Studio 2017中,相同的代码不适用于我自己的项目(strcpy)

时间:2017-10-25 17:32:22

标签: visual-studio

我正在为学校做一些练习。 我从老师那里得到的项目没有任何错误。 当我将代码复制到我的计算机上的新项目时,它显示以下错误: 编译器警告(级别3)C4996

我查看了两个编译器设置并使它们相等,但这不起作用。 所以我尝试从我的老师项目中创建一个项目属性文件,并将其插入到我自己的项目中。这也行不通。 有人可以帮我解决这个问题吗? 这是代码:

#include <stdio.h>
#include <string.h>


int main(void)
{
    char s1[32];
    char s2[32];

    strcpy(s1, "abc def.");
    strcpy(s2, "ghi_x");

    printf("s1=\"%s\"    en   s2=\"%s\"\n", s1, s2);
    printf("s1 bevat %d symbolen  en s2 bevat %d symbolen\n", strlen(s1),        strlen(s2));
    printf("De functie strcmp(s1,s2) geeft %d als functiewaarde\n", strcmp(s1, s2));
    getchar();
    return 0;
}

我得到的错误是

  

严重级代码说明项目文件行抑制状态错误C4996'strcpy':此函数或变量可能不安全。请考虑使用strcpy_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅在线帮助

1 个答案:

答案 0 :(得分:1)

快速Google搜索显示“编译器警告(级别3)C4996”表示您正在使用已弃用的功能。最可能的罪魁祸首是template< typename T >函数,因为它们通常不安全。切换到使用他们的str*对应方(例如strn*)。