Для примера код функции, в которой происходит добавление записей (дисков) в файл. В начале файла записано количество записей (дисков) в файле. При добавлении новых, эта запись перезаписывается:
Кликните здесь для просмотра всего текста
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| void addvd() // создание базы и добавление дисков
{
cout << "\n\nКоличество dvd дисков = ";
int t; // количество добавляемых дисков
(cin >> t).get();
int n = 0; // количество дисков в файле (записывается в первой строке)
//запись в файл
fstream f("f.txt", ios::in | ios::out | ios::binary);
if (!f.is_open()) // если файла не существует
{
f.open("f.txt", ios::out | ios::binary);
f.write((const char*)&t, sizeof(t)); // записываем в файл количество дисков
f.close();
}
else // если файл существует
{
f.read((char*)&n, sizeof(n)); // читаем количество дисков в файле
f.seekg(0); // возвращаем курсор в начало файла
n += t; // новое количество дисков в файле
f.write((const char*)&n, sizeof(n)); // записываем новое количество дисков в файле
f.close();
}
f.open("f.txt", ios::app); // открываем файл для дозаписи
for(int i = 0; i < t; i++)
{
dvd temp;
cout << "\nНазвание фильма: "; getline(cin, temp.namefilm); f << temp.namefilm << '\n';
cout << "Имя режисера: "; getline(cin, temp.namereg); f << temp.namereg << '\n';
cout << "Продолжительность в минутах: "; cin >> temp.prodol; f << temp.prodol << '\n';
cout << "Цена: "; (cin >> temp.cena).get(); f << temp.cena << '\n';
}
f.close();
} |
|