2013-10-22 30 views
0

我試圖理解()在C++中使用strptime的,並能夠做到這一點使用strptime,我寫了一個短代碼:錯誤使用C++

#include <time.h> 
#include <iostream> 
Test(string dtime) 
{ 
    string s = dtime; 

    struct tm timeDate; 
    strptime(s,"%y-%m-%d %H:%M", &timeDate); 
    cout<<timeDate.tm_sec<<endl; 
} 

DTIME總會象2013 :03:15 16:08。我得到了這樣的錯誤:

Test(std::string)’: 
Test.cpp:17:41: error: cannot convert ‘std::string* {aka std::basic_string<char>*}’ to ‘const char*’ for argument ‘1’ to ‘char* strptime(const char*, const char*, tm*) 

有沒有人幫我解決我的問題?在此先感謝

回答

4

strptime的聲明是:

char *strptime(const char *s, const char *format, struct tm *tm); 

第一個參數需要一個const char *。你傳遞一個std::string

轉換s一個C風格char *

strptime(s.c_str(),"%y-%m-%d %H:%M", &timeDate); 
+0

感謝答覆。是的,它解決了我的問題,但是問題是什麼?我的意思是爲什麼我需要將s轉換爲「C風格」char * strptime是一種C語言函數,不支持字符串? @Kunal – Bambi

+0

@Bambi我編輯過。檢查。 – Kunal

+0

再次感謝。還有1個問題。我認爲字符串已經是字符指針了?我錯了嗎 ? – Bambi