У меня есть программа, которая хранит информацию о «друзьях» в массиве struct и записывает ее в файл.Нет проблем там.Но как бы я мог изменить и / или удалить определенный элемент в этом массиве структуры?Прочитал, и он говорит, что я не могу, если я не переместил все это на единицу после удаления в.другие элементы по одному и напишите это снова ... но как бы я это сделал?Попытка включить только необходимый код, который у меня есть.
Для его изменения, я бы предположил, что я прочитал бы его, затем спросил бы определенный элемент # Я хочу изменить, а затем установить все значенияэтот элемент в ноль, а затем разрешить пользователю вводить новую информацию?Как будет выглядеть этот код?
struct FriendList
{
char screenname[32];
char country[32];
char city[32];
char interests[32];
short age;
};
int main()
{
FriendList friends[num_friends];
const int num_friends = 2;
// Gets user input and puts it into struct array and writes to file
case 3:
{ // Getting info and putting in struct elements
for (index = 0; index < num_friends; index++)
{
// Create Friend Records
cout << "Enter Screename " << endl;
cin.ignore();
cin.getline(friends[index].screenname, 32);
cout << "Country: " << endl;
cin >> friends[index].country;
cout << "City: " << endl;
cin >> friends[index].city;
cout << "Age: " << endl;
cin >> friends[index].age;
}
counting += index;
fstream infile;
infile.open("friends.dat", ios::out | ios::binary |ios::app);
if(infile.fail())
{ cout << "File not found!\n\t";
// exit
}
// Writing struct to file
infile.write((char*)&friends, sizeof(friends));
infile.close();
break;
}
// Delete a friend ???
case 5:
{ // Reading in file contents into struct friends
// Then????
fstream outfile;
outfile.open("friends.dat", ios::in | ios::binary);
outfile.read((char*)&friends, sizeof(friends));
break;
}