Witam! Jestem początkujący, przerabiam kurs programowania, ale chce także zdobywać nową wiedzę spoza kursu a nigdzie nie moge znaleźć odpowiedzi na to pytanie. Kod poniżej to jedna z form struktur danych. Ma ktos pomysł jak tą liste zapisac do pliku z mozliwoscia dopisywania.
znam opcje
fstream plik;
plik.open("lista.txt",ios::out | ios::app)
i nie wiem jak to napisac probowalem na pare sposobów, ale srednio mi to idzie. Proszę o poradę.
KOD PONIŻEJ
#include <iostream>
#include <list>
#include <windows.h>
#include <fstream>
using namespace std;
list <string> lista;
int wybor;
void wyswietl()
{
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),10);
cout<<"ZAWARTOSC LISTY"<<endl;
cout<<"-----------------"<<endl;
for(list<string>::iterator i=lista.begin(); i!=lista.end();++i)
cout<<*i<<" ";
cout<<endl;
cout<<"--------------------------------"<<endl<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
}
void push_front()
{
string napis;
cout<<"Wpisz napis ktory ma znalezc sie na poczatku listy: ";
cin>>napis;
lista.push_front(napis);
}
void push_back()
{
string napis;
cout<<"Wpisz napis ktory ma znalezc sie na koncu listy: ";
cin>>napis;
lista.push_back(napis);
}
void pop_front()
{
cout<<"Nastapi usuniecie napisu z poczatku listy! ";
Sleep(2000);
lista.pop_front();
}
void pop_back()
{
cout<<"Nastapi usuniecie napisu z konca listy!";
lista.pop_back();
Sleep(2000);
}
void size()
{
cout<<"Ilosc elementow na liscie: "<<lista.size();
Sleep(2000);
}
void max_size()
{
cout<<"Max napisow na liscie: "<<lista.max_size();
Sleep(5000);
}
void empty()
{
cout<<"Czy lista jest pusta? -> ";
if (lista.empty()==1) cout<<"TRUE"; else cout<<"FALSE";
Sleep(2000);
}
void remove()
{
string napis;
cout<<"Nastapi usuniecie (podaj wyrazy do usuniecia): ";
cin>>napis;
lista.remove(napis);
}
void sort()
{
cout<<"Nastąpi posortowanie A-Z! ";
lista.sort();
Sleep(2000);
}
void reverse()
{
cout<<"Nastąpi odwrocenie Z-A!";
lista.reverse();
Sleep(2000);
}
void exit()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12);
cout<<"KONIEC PROGRAMU";
Sleep(2000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0);
}
int main()
{
do
{
wyswietl();
cout<<"MENU GLOWNE LISTY"<<endl;
cout<<"1.push_front "<<endl;
cout<<"2.push_back "<<endl;
cout<<"3.pop_front "<<endl;
cout<<"4.pop_back "<<endl;
cout<<"5.size "<<endl;
cout<<"6.max_size "<<endl;
cout<<"7.empty "<<endl;
cout<<"8.remove "<<endl;
cout<<"9.sort "<<endl;
cout<<"10.reverse "<<endl;
cout<<"11.exit "<<endl;
cout<<"---------------"<<endl;
cout<<"wybor: ";
cin>>wybor;
switch (wybor)
{
case 1:
push_front();
break;
case 2:
push_back();
break;
case 3:
pop_front();
break;
case 4:
pop_back();
break;
case 5:
size();
break;
case 6:
max_size();
break;
case 7:
empty();
break;
case 8:
remove();
break;
case 9:
sort();
break;
case 10:
reverse();
break;
case 11:
exit(0);
break;
default:
cout<<"POMYLKA";
Sleep(2000);
break;
}
}while(wybor!=11);
return 0;
}```