По умолчанию при связывании объекта ofstream с именем файла создается новый файл, если такового не было или удаляется содержимое существующего файла с таким же именем. Для изменения настроек используются флаги второго аргумента конструктора объекта ofstream:

1) ios::app(appеnd) добавляет данные в конец файла вместо удаления содержимого всего файла;

2) ios::ate(at end) переводит точку ввода в конец файла, но имеется возможность вводить данные в любом месте файла;

3) ios::trunc(truncate)- выбирается по умолчанию;

4) ios::nocreate- не выполняет операцию открытия, если файл не существует;

5) ios::noreplace- не выполняет операцию открытия, если файл уже существует.

Пример:

# include<fstream.h>

int main()

{ char filename[80];

char buffer[255];

cout<<”Please give filename”;

cin >>filename;

ifstream fin(filename);

if (fin)   /*файл уже существует?

{   cout<<”Current content file\n”;

char ch;

while (fin.get(ch));

cout<<ch;

cout<<”End of file\n”;  }

fin.close();

cout<<”\Opening”<<filename<<”In append mode\n”;

ofstream fout(filename,IOS::app);

if(!fout)

{  cout<<”Unable to open”<<filename<<”for oppening\n”;

return (1);    }

cout<<”\n Enter text for file: ”;

cin.ignore(1,’\n’);

cin.getline(buffer,255);

fout<<buffer<<’\n’;

fout.close();

fin.open(filename);  \\ открытие файла на чтение и

переопределение существующего объекта fin \\

if(!fin)

{  cout<<”Unable to open”<<filename<<”for reading\n”;

return (1);  }

cout<<”\n This is content \n”;

char ch;

while (fin.get(ch));

cout<<ch;

cout<< “End of file \n”;

fin.close();

return 0;   }