У меня есть следующий код:
ofstream mOutFile.open(logPath, ios_base::app);
string lBuilder;
lBuilder.append("========================================================\n");
lBuilder.append("Date: ");
lBuilder.append(asctime(timeinfo));
lBuilder.append("\n");
lBuilder.append("Log Message:\n");
lBuilder.append(toLog);
lBuilder.append("\n");
lBuilder.append("========================================================\n\n");
int lSize = lBuilder.size();
char* lBuffer = new char[lSize];
int index = 0;
for each (char c in lBuilder)
lBuffer[index++] = c;
mOutFile.write(lBuffer, lSize);
mOutFile.flush();
К сожалению, пока я не закрою приложение (я предполагаю, что закрытие потока тоже сработает), вывод не записывается в текстовый файл. знаю, я мог бы, вероятно, закрыть и снова открыть поток, и все будет «просто работать», но это кажется глупым и неправильным решением. Что я здесь делаю неправильно?
Я также пробовал следующие варианты, основанные на других найденных мною вопросах. здесь, но эти решения не сработали:
mOutputFile << flush;
mOutputFile << endl;
Заранее спасибо за любую помощь в этом
редактировать Все в этом коде работает на Visual C++, он строится и работает нормально, за исключением того, что файл не записывается до тех пор, пока поток закрывается, даже если я форсирую сброс.Кроме того, я переключился с использования оператора << на char * и .write(), чтобы посмотреть, ведет ли себя что-то по-другому.