Błąd zapewne znajduje się w tym fragmencie kodu:
cin>>ile;
towary towar[ile];
for (int i=1;i<=ile;i++)
{
system("cls");
cout<<"Dodawanie nowego towaru: "<<endl;
cout<<"Podaj nazwe: ";
cin>>towar[i].nazwa;
cout<<"Podaj ilosc: ";
cin>>towar[i].ilosc;
cout<<"Podaj cene: ";
cin>>towar[i].cena;
cout<<"Dodano nowy towar!"<<endl;
}
W C++ indeksy tablic zaczynają się od zera i kończą na liczbie która jest o jeden mniejsza od rozmiaru tablicy ( tutaj jest to ile-1 ). Jeżeli pominięcie pierwszego elementu nie jest jeszcze dużym błędem, to zapisanie czegoś poza zakresem tablicy jest bombą z opóźnionym zapłonem, który nazywa się fachowo Undefined behavior. Dzieje się tak gdyż próbujesz zapisać w tablicy obiekt klasy towary w tablicy o indeksie ile , gdzie tablica nie ma już zarezerwowanej pamięci.
Zmień ten kod używając std::vector lub std::array zamiast zwykłej tablicy.
cin>>ile;
std::vector<towary> towar(ile);
for ( auto& item : towar )
{
system("cls");
cout<<"Dodawanie nowego towaru: "<<endl;
cout<<"Podaj nazwe: ";
cin>>item.nazwa;
cout<<"Podaj ilosc: ";
cin>>item.ilosc;
cout<<"Podaj cene: ";
cin>>item.cena;
cout<<"Dodano nowy towar!"<<endl;
}