zapis do pliku textowego

0

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;
}```
0

O co chodzi "z możliwością dopisywania"?

PS: jesteśmy w 1998?

    for(list<string>::iterator i=lista.begin(); i!=lista.end();++i)
        cout<<*i<<"  ";

Można tak:

for(auto const& x : lista)
    cout << x << ' ';

1 użytkowników online, w tym zalogowanych: 0, gości: 1