Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 此函数或变量可能是不安全的visual studio_C++_Visual Studio 2012 - Fatal编程技术网

C++ 此函数或变量可能是不安全的visual studio

C++ 此函数或变量可能是不安全的visual studio,c++,visual-studio-2012,C++,Visual Studio 2012,我在visual studio上遇到了一个问题。 我尝试使用“time.h”中的localtime函数 VisualStudio告诉我这是一个不安全的函数。然而,我不得不把这个用于我的学校练习。我看到您可以通过进入项目属性、构建选项卡并选中“启用不安全代码”来禁用此不安全错误 尽管如此,我没有“构建”选项卡,如您所见: 我正在使用windows 7和visual studio 2012 Ultimate。看起来“构建选项卡”和“启用不安全代码”已消失:/ 也许你知道怎么解决这个问题 谢谢:(

我在visual studio上遇到了一个问题。 我尝试使用“time.h”中的localtime函数

VisualStudio告诉我这是一个不安全的函数。然而,我不得不把这个用于我的学校练习。我看到您可以通过进入项目属性、构建选项卡并选中“启用不安全代码”来禁用此不安全错误

尽管如此,我没有“构建”选项卡,如您所见:

我正在使用windows 7和visual studio 2012 Ultimate。看起来“构建选项卡”和“启用不安全代码”已消失:/ 也许你知道怎么解决这个问题


谢谢:(

<代码>不安全< /COD> >是C不C++的一部分。例如,这些明确表示

/不安全(C#编译器选项)

在顶端

在C++中,VisualStudio会抱怨它不安全的功能,建议您<代码>定义“CRTYSSECURIONNOI警告”<代码>,如果您不需要很多警告,例如

localtime
可能会为您提供以下信息:

警告C4996:“localtime”:此函数或变量可能不安全。 考虑使用LoalTimeTys代替。要禁用弃用,请使用 _CRT\u安全\u无警告。有关详细信息,请参阅联机帮助


localtime
被MS编译器标记为不安全,因为它返回指向静态分配的
struct tm
的指针。这显然是个坏主意。
因此,
localtime\u s
是由Microsoft发明的,它使用指向您分配的
struct tm
的指针
struct tm timeinfo
本地时间(时间信息和原始时间)
使用此选项(并使您的程序特定于Microsoft)或通过定义
\u CRT\u SECURE\u NO\u警告来关闭警告

Visual Studio(VS)编译器会给出此错误。解决这个问题很简单

  • 转到VS上下文菜单项目>属性
  • 单击配置属性C/C++>预处理器
  • 编辑预处理器定义并在最后一行空行添加_CRT\u SECURE\u NO\u警告
    此编译警告将消失。

    您可以使用以下指令关闭警告:

    #pragma warning(disable : 4996) //_CRT_SECURE_NO_WARNINGS
    

    \define\u CRT\u SECURE\u NO\u警告
    #包括
    #包括
    #包括
    字符计数器_str[10];
    int main()
    { 
    time\u t my\u time=time(NULL)//声明time()的参数;
    sprintf(counter_str,ctime(&my_time));//获取当前时间
    printf(柜台);
    }
    
    您想到的是C#的
    不安全
    关键字,这是完全不同的。@SLaks-什么是可移植的
    localtime
    的“安全”变体?这可能会回答这个问题,最好对提供的代码进行一些简短的解释或描述。#定义#CRT\u SECURE\u NO\u警告
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <time.h> 
    char counter_str[10];
    
    int main()
    { 
      time_t my_time = time(NULL)// declaring argument of time();
      sprintf(counter_str,ctime(&my_time));//fetch current time
      printf(counter_str);
    
    }