У меня возникла странная проблема с моим приложением, и хотя я пробовал несколько решений, ни одна из них не решила мою проблему.Странное начальное пустое пространство, записывающее данные в файл в C++
My C++ приложение создает набор файлов с настраиваемыми данными. Пока что код работает нормально, и файлы создаются правильно, кроме первого. Ожидаемый формат файлов заключается в следующем:
@Header
@Line1E1,Line1E2,Line1E3
@Line2E1,Line2E2,Line1E3
Однако я заметил странное пустое место на первой строке первого созданного файла (и только первый один):
@Header
@Line1E1,Line1E2,Line1E3
@Line2E1,Line2E2,Line1E3
Поскольку код одинаковый для всех файлов, мне интересно, что это не так, но до сих пор я не смог обнаружить корень моей проблемы.
Ниже представлена упрощенная версия моего кода:
/* Variables */
std::ofstream Fil;
std::stringstream ss;
ss.precision (10);
ss.width (10);
ss.setf (ios::fixed);
for (int Inx = 0; Inx < MaxInx; Inx++) {
sprintf (FilNam, "%i-ExportFile.txt", Inx);
Fil.open(std::string (FilNam).c_str(), std::ofstream::out);
SavSta = Fil.is_open();
if (SavSta) {
ss << "@Header" << "\n";
ss << "@Matrix name: " << MtxName << "\n";
ss << /* Matrix data goes here */ << "\n";
Fil << ss.rdbuf();
ss.str(std::string());
ss.clear();
}
Fil.close();
}
Если вы пишете только первую строку файла, что говорит отладчик? – displayname
Отладчик показывает начальное пустое пространство в строковом потоке, но только при первом выполнении цикла. –