почему файл перезаписывается?

Салават

Опытный
09.01.16
313
135
55
#1
Всем добрый день.
Помогите разобраться с ошибкой.
имеется файл shablon.txt
В нем хранятся (фамилия имя отчество возраст стаж)
теперь программа последовательно спросить пользователя ввести ответ на шаблон (фамилия?: ...) и перезаписать ответ в файл data.txt
проблема в следующем, программа каждый раз стирает данные из файла, и пишет заново. т.е. в файле будет только стаж: (переменная)

помогите разобраться
код


#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std;
void data(char a[256])
{
char b[256];
ofstream file("data.txt");
if (!file.is_open())
{
cout << "Файл не может быть создан!";
}
else
{
cout << a << "?: ";
cin >> b;
file << a << ": " << b << endl;
}

file.close();
}
void shablon()
{
char a[256];

ifstream f("shablon.txt", ios_base::in);
if (!f.is_open())
{
cout << "Файл не найден! \n";
}
else
{
while (!f.eof())
{
f >> a;
data(a);
}
}
f.close();
}
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
shablon();
system("pause");
}
 

Салават

Опытный
09.01.16
313
135
55
#2
разобрался
Решение:
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std;
void data(char a[256])
{
char b[256];
ofstream file("data.txt",ios_base::app);
if (!file.is_open())
{
cout << "Файл не может быть создан!";
}
else
{
cout << a << "?: ";
cin >> b;
file << a << ": " << b << endl;
}

file.close();
}
void shablon()
{
char a[256];

ifstream f("shablon.txt", ios_base::in);
if (!f.is_open())
{
cout << "Файл не найден! \n";
}
else
{
while (!f.eof())
{
f >> a;
data(a);
}
}
f.close();
}
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
shablon();
system("pause");
}