2

私はすでに問題を知っているところまでこれをデバッグしていますが、それを解決する方法がわかりません。

現在、私は使用しています:

file.open(logFile.c_str(), std::ios::out | std::ios::app); 

以下のマークされた行をコメントアウトする限り、logFile 変数は正常に機能します。

time_t rawtime;
struct tm * timeinfo;
time (&rawtime);
timeinfo = localtime (&rawtime);
logFile = "bin/";
if(_DEBUG) { logFile += "Debug/"; }
else { logFile += "Release/"; }
logFile += fileName;
if(_DEBUG) { logFile += "Debug-"; }
else { logFile += "Release-"; }
logFile += asctime(timeinfo); // Works fine with this line commented.
logFile += ".log";

では、この行のコメントを外して、これを正しく機能させるにはどうすればよいでしょうか?

4

2 に答える 2

6

:少なくとも NTFS では、コロン ( ) はファイル名に使用できない文字です。strftime()代わりに、コロンを含まない文字列をフォーマットするために使用してみてください。

于 2012-10-27T20:34:53.267 に答える
2

推測してみます。ファイル名に時間を追加すると、コロンが追加されます。たとえば、12:23:34 です。ファイル名にコロンを使用することが合法ではないファイル システムを使用していると思います。

解決策 (私の推測が正しければ)、コロンをアンダースコアなどに置き換えます。

于 2012-10-27T20:34:25.217 に答える