2016-11-11 48 views
2
#include "Time.h" 

void Time::timerStart() 
{ 
    tBegin = clock(); 
} 

double Time::timerStop() 
{ 
    tEnd = clock(); 
    double elapsed_secs = double(tEnd - tBegin)/CLOCKS_PER_SEC; 
    return elapsed_secs; 
} 

string Time::getDate(char delimiter) 
{ 
    time_t t = time(0); //now 
    struct tm *now = localtime(&t); 

    ostringstream ss; //use iss or oss and NOT ss (bulkier) 
    ss << now->tm_mday << delimiter << (now->tm_mon + 1) 
     << delimiter << (now->tm_year + 1900); 

    return ss.str(); 
} 

string Time::getTime(char delimiter) 
{ 
    time_t t = time(0); 
    struct tm *now = localtime(&t); 

    ostringstream ss; 
    ss << now->tm_hour << delimiter << now->tm_min << delimiter << now->tm_sec; 

    return ss.str(); 
} 

基本上我总是收到错误代码C4966'localtime':此函数或变量可能是不安全的。考虑使用localtime_s来代替。要禁用折旧,请使用_CRT_SECURE_NO_WARNINGS。C4996系统找不到指定的文件

我在预处理器定义中使用了_CRT_SECURE_NO_WARNINGS,它仍然给了我相同的错误。我很迷失如何运行这个程序,我花了几个小时在网上寻找解决方案,并试图自己弄清楚。

+0

出于好奇,“系统找不到指定的文件”与使用可能不安全的localtime有什么关系?你究竟在哪里碰到过错误消息文本(问题标题中的文件文本)? OMG THANK YOU THCH !!!!!!!!!!!!!!!!! – WhozCraig

回答

1

首先,加_CRT_SECURE_NO_WARNINGSPreprocessor作品对我来说,如果不适合你,请尝试以下的其他解决方案:在你的文件的开头 定义_CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS 
#include <time.h> 

解决方案1

解决方案2:

添加4996到:

YourProject->Properties->Configuration Properties->C/C++->Advanced->Disable Specific Warnings 
+0

第一个解决方案奏效。谢谢。我爱你!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! – ByronM

+0

我很高兴它有帮助。 –

相关问题