在c ++中使用strptime时出错

时间:2013-10-22 17:00:26

标签: c++ strptime

我试图理解在c ++中使用strptime()并且能够做到这一点,我写了一个简短的代码:

#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*)

有没有人帮我解决我的问题?提前致谢

1 个答案:

答案 0 :(得分: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);