【发布时间】:2016-03-27 07:47:22
【问题描述】:
我在 Ubuntu 中将 Codeblocks 用于 c++ 项目。我有以下用于创建时间戳的函数:
char *myclass::getCurrentTime() {
time_t rawtime;
struct tm * timeinfo;
char buffer[30];
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, 30, "%d-%m-%YT%H:%M:%S.000+02:00", timeinfo);
return buffer;
}
当我通过以下方式将返回的字符转换为字符串时:
char *curr_time = getCurrentTime();
string time_str = string(curr_time);
它会丢失编码,如果我尝试将字符串写入文件或打印它,我会得到未定义的字符。如果我使用 char 编码没有问题。当我在 Win7 中使用 Visual Studio 时,一切正常。
【问题讨论】:
标签: c++ string time encoding char