c++ Функция для форматирования time_t как std::string: длина буфера?

Мне нужна функция, которая будет принимать параметр time_t и произвольную строку формата и форматировать ее. Я хочу что-то вроде этого:

std::string GetTimeAsString(std::string formatString, time_t theTime)
{
    struct tm *timeinfo;
    timeinfo = localtime( &theTime);

    char buffer[100];
    strftime(buffer, 100, formatString.c_str(), timeinfo);
    std::string result(buffer);
    return result;
}

Однако одна проблема, с которой я столкнулся - это длина буфера. Я думал сделать что-то вроде formatString * 4 в качестве длины буфера. Но я полагаю, что вы не можете динамически устанавливать длину буфера? Может быть, я могу выбрать произвольно большой буфер? Я немного запутался, как сделать это универсальным.

Как я могу написать функцию для достижения этого?

6
задан User 28 October 2011 в 22:22
поделиться