2016-11-11 47 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

我很高興它有幫助。 –

相關問題