返回一个const char *

时间:2012-08-18 18:47:10

标签: c++ function char const

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

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

有什么问题? 类似的问题:Functions and return const char*

THX

编辑: 现在有什么问题?对不起,我做了太多的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;
}

1 个答案:

答案 0 :(得分:5)

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