为什么函数返回的 string 对象为空?
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget = string(pBuf);
free(pBuf);
}
return t_oStrTarget;
}
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget = pBuf;
free(pBuf);
}
return t_oStrTarget;
}
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
string t_oStrTarget;
char* pBuf = (char*)malloc(kMaxStrLen);
if (pBuf) {
sprintf(pBuf, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
t_oStrTarget.append(string(pBuf));
free(pBuf);
}
return t_oStrTarget;
}
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
std::stringstream ss;
ss << t_iYear << "-" << t_iMonth << "-" << t_iDay<< " " << t_iHour <<":" t_iMin
return ss.str();
}
Horrible code, mix C/c++ together is the worst thing to do.
Just use stringstram
string getDate(){
int t_iYear = 2013;
int t_iMonth = 11;
int t_iDay = 23;
int t_iHour = 16;
int t_iMin = 45;
std::stringstream ss;
ss << t_iYear << "-" << t_iMonth << "-" << t_iDay<< " " << t_iHour <<":" t_iMin
return ss.str();
}
why horrible?c++ is original support c, so why cannot i write code in this way?