假设我有一个程序可以将某些内容写入日志文件。一切正常,直到我决定在文件名中添加时间戳。
这是我怎么做的:
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, sizeof(buffer), "%d-%m-%Y_%I:%M:%S_", timeinfo);
std::string timestring(buffer);
std::string filename = timestring + ".txt";
std::cout << "\n" << filename << std::endl;
FILE *f = fopen(filename.c_str(), "w");
我不知道为什么,但fopen
会返回NULL
。
filename
没关系:20-08-2017_01:08:09.txt
,但如果我将文件名更改为logfile.txt
例如 - eveything工作正常。
好像某些字符不允许在文件名中,但我使用-
,_
,:
对其进行了测试,而且不是案件。
有人有什么想法吗?
答案 0 :(得分:1)
尝试转义:字符,这可能是问题