файл fstream перезаписывается

Я работаю над программой, которая будет выводить текстовый файл. Каждый раз, когда я хочу записать в файл, я открываю его, seekp() в конец файла, записываю в него и закрываю. Однако кажется, что каждый раз, когда выполняется новая запись, она заменяет все данные, которые ранее существовали в файле.

output.open("output.txt", fstream::out);
output.seekp(0, ios::end);
output << "Record " << key << " does not exist.\r";
output.close();

Это правильный способ добавить каждую запись в конец файла? Мы будем очень признательны за любые идеи, которые могут привести к перезаписи всего файла.


person raphnguyen    schedule 28.03.2013    source источник


Ответы (2)


Добавьте флаг fstream::app.

output.open("output.txt", fstream::out | fstream::app);
person Johnny Mnemonic    schedule 28.03.2013
comment
О! Я пробовал fstream::ate безрезультатно. Спасибо за чаевые! - person raphnguyen; 28.03.2013

fstream::out всегда перезаписывает данные в файле. для добавления используйте модуль fstream::app

person Aswin Murugesh    schedule 28.03.2013