首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么方法返回的 string 对象为空?解决方法

2013-11-25 
为什么方法返回的 string 对象为空?string getDate(){int t_iYear 2013int t_iMonth 11int t_iDay

为什么方法返回的 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 对象都是空的? std?string
[解决办法]
跟踪一下,看看进if条件了没有
[解决办法]
全都正常呀,大兄弟
在vs2010中
[解决办法]
代码写的不错,规范,看着舒服,就是有点四不像,可以用std::stringstream
[解决办法]
已经知道最大多长了,没有必要再动态分配内存。直接定义一个足够大的buffer,这样代码看起来会更整洁。而且可以消除构造的临时std::string对象。
char sz[20];
sprintf(sz, "%d-%d-%d %d:%d", t_iYear, t_iMonth, t_iDay, t_iHour, t_iMin);
return sz;

热点排行