我正在用C ++编写程序的记录器。
我有这段代码:
void Log::Write(char* logline)
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
m_stream << asctime (timeinfo) << logline << endl;
}
这是一条日志
2011年10月11日星期二13:07:28
我想要这样的单行输出不同:
2011年10月11日星期二13:07:28-这是日志
我该怎么做?
谢谢!
最佳答案
您的问题是asctime():
http://www.cplusplus.com/reference/clibrary/ctime/asctime/
The string is followed by a new-line character ('\n') and the terminating null-character.
由于返回的字符串是C字符串,因此可以将\ n替换为\ 0:
char * str = asctime(timeinfo);
str[strlen(str) - 1] = '\0';
只要您不再次调用ctime或asctime,内容就不会被覆盖。