1

我写了一个返回当前日期的函数。在函数内部,我“计算”结果并且它工作,但是当我“计算”函数时,它不起作用。我有垃圾。

const char* engineCS::getDate() const
{
    time_t t = time(0);
    struct tm *now = localtime(&t);
    char buf[20];
    strftime(buf, sizeof(buf), "%Y-%m-%d %X", now);
    cout << buf << endl;
    return buf;
}

示例:内部:2012-02-02 00:00:00 外部:?????fv

怎么了?类似问题:函数并返回 const char*

谢谢

编辑:现在有什么问题?对不起,我做了太多 VB.NET ......

const char* engineCS::getDate() const
{
    time_t t = time(0);
    struct tm *now = localtime(&t);
    char *buf;
    buf = new char[20];
    strftime(buf, sizeof(buf), "%Y-%m-%d %X", now);
    cout << buf << endl;
    return buf;
}
4

1 回答 1

5

将您的功能更改为 return std::string,一切都会好起来的。除了返回类型之外,您不需要进行任何进一步的更改。如果消费者需要 raw ,请在结果字符串上char const *调用成员函数。c_str()

于 2012-08-18T19:00:11.000 回答