"ErrorReport_date_time.rpt"という形式のファイル名でエラーレポートを出力したいとします。現時点では、ファイルを "ErrorReport.rpt"として出力することも、拡張子を付けずに出力することもできますが、日付と時刻を追加するとファイルは作成されません。日付を追加するときにファイルが出力されない
void ErrorHandler::Open(char const filename[])
{
string fileType = ".rpt";
time_t t = time(0);
struct tm * now = localtime(&t);
stringstream ss;
ss << filename
<< (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< (now->tm_mday) << '_'
<< (now->tm_hour) << ':'
<< (now->tm_min) << ':'
<< now->tm_sec
<< fileType
<< endl;
fileHandler->OpenFile(ss.str());
}
ファイルハンドラが開いて閉じ、ファイルに正常に書き込むとすれば、どこが間違っていますか?
あなたの質問に[mcve]を指定しないと間違っています。 –
どのようなOSですか? Windowsは ':'やそれに類する文字をafaikのファイル名に持つことはできません。 –
なぜ 'endl'がファイル名に追加されますか? – MikeCAT