0

我试图理解 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*)

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

4

1 回答 1

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);
于 2013-10-22T17:03:02.687 回答