Функция работает нормально, единственное я никак не могу разобраться с тем, что при удалении файла, в файл записывается отрицательное значение -858993460; Не знаю что с этим делать, уже второй день не могу решить проблему. После того, как появляется это число, не является доступным удаление новых созданных после этого числа обьектов, структур. (Нарушения доступа для записи) в istream.
void Funcodstranit()//Объявление функции поиска и удаления элементов из файла
{
zamky pass[255];
int i = 0;
int n1 = 0;
fstream databaza;
databaza.open("databaza.txt", ios::in);
do
{
databaza >> pass[i].id;
databaza >> pass[i].nazev;
databaza >> pass[i].Mesto_a_Stat;
databaza >> pass[i].popis;
databaza >> pass[i].oteviraci_hodiny;
databaza >> pass[i].vstupne;
i++;
n1++;
}
while (!databaza.eof());
int mk; bool check = 0; int odst;
cout << "Zadejte ID zamku, pro odstraneni: ";
cin >> mk;
for (i = 0; i < n1; i++)
{
if (mk == pass[i].id)
{
odst = i;
cout << "\n===================================JEMENO NALEZENO=================================\n";
cout << "ID =" << pass[i].id << "\nNazev zamku=" << pass[i].nazev << "\nMesto a Stat=" << pass[i].Mesto_a_Stat << "\nPopis=" << pass[i].popis << "\nHodiny praci=" << pass[i].oteviraci_hodiny << "\nVstupne=" << pass[i].vstupne;
cout << "\n===================================================================================\n";
check = 1;
};
};
if (check != 1)
{
cout << "=============================\n";
cout << "Neni objektu kteri muze najit\n";
cout << "=============================\n";
}
else
{
string sel;
cout << "Odstranit Objekt nebo Objekty? \n" << "1. Yes\n" << "2. No\n";
cout << "Answer: ";
cin.ignore();
getline(cin, sel);
if (sel == "Yes" | sel == "yes")
{
fstream databaza("databaza.txt", ios::out | ios::binary);
for (i = 0; i < n1; i++)
{
if (pass[i].id != mk)
{
databaza << pass[i].id << " ";
databaza << pass[i].nazev << " ";
databaza << pass[i].Mesto_a_Stat << " ";
databaza << pass[i].popis << " ";
databaza << pass[i].oteviraci_hodiny << " ";
databaza << pass[i].vstupne << " ";
databaza << " \n";
}
}
cout << "Objekt odstranen...\n";
Sleep(1000);
}
}
databaza.close();
}