我试图理解在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*)
有没有人帮我解决我的问题?提前致谢
答案 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);