C++ - ofstream не выводит в файл, пока я не закрою программу

У меня есть следующий код:

   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(), чтобы посмотреть, ведет ли себя что-то по-другому.

5
задан Bender the Greatest 11 March 2012 в 19:00
поделиться