[C++] Problem z programem odczytującym i zapisującym dane

Witam, mam problem z programem, który wczytuje dane z pliku i wyswietla je w programie jako ‘porade dnia’, a następnie prosi użytkownika o podanie wlasnej ‘porady’, ktora zostaje zapisana w pliku, mam problem z pobraniem od uzytkownika więcej niż jednej linii porady i wysłania ich do pliku, chciałbym zeby uzytkownik wpisywał jedną linię porady wciskał enter wpisywał drugą linię i konczył wpisywanie dopiero jak wciśnie dwa razy z rzędu enter, wtedy program mógłby badać osiąnięcie końca pliku wejściowego przez sprawdzenie, czy nie doszedł do dwóch następujących po sobie znaków ‘\n’. Oto mój kod:

#include 

#include 

#include 

using namespace std;

int main()

{

   fstream plik;

    plik.open( "dane5.txt", ios::in | ios::out );

    if( plik.good() )

    {

        string napis;

        //char napis_2[256];

        cout << "Zlota mysl na dzis: " << endl;

        while( !plik.eof() )

        {

            getline( plik, napis );

            cout << napis << endl;

        }

        //ofstream zapis("dane5.txt");

        cout << "Podaj nowa zlota mysl: " <
        fstream plik_2( "dane5.txt", std::ios::out );

        string napis_2;

        getline( std::cin, napis_2 );

        plik_2.write( & napis_2[0], napis_2.length() );

        plik_2.write("\n",1);

        plik.close();

    } else cout << "Nie udalo sie otworzyc pliku!" << endl;


    system("pause");

    return( 0 );

}

Zrób to w ten sposób, Pętlę warunkową sprawdzającą co zostało wpisane do buforu, jeśli nie jest to enter to powiedzmy niech kopiuje do pliku, jesli trafi na enter wchodzi w następną pętlę warunkową sprawdzającą czy następny znak to również enter, jeśli tak to kończy wpisywanie do pliku jeśli ni kontynuuje wpisywanie po nowej linii :slight_smile:

Jeżeli będziesz zapisywać jedną “złotą myśl” w kilku wierszach, to będziesz musiał również przy jej wyświetleniu wczytać kilka wierszy. A ponieważ dla komputera każdy wiersz to jest tylko wiersz to nie będziesz wiedział gdzie ta “złota myśl” zaczyna się a gdzie się kończy.

W związku z tym możesz sklejać wierszy za pomocą znaku powiedzmy ‘\r’.

Zapis możesz zrobić w sposób następujący:

bool first=true;true)  {   string napis;   getline(cin,napis);   if(!napis.length()) break;   if(first) first=false;   else plik_2"\r"; // plik_2.write("\r",1);   plik_2napis; //plik_2.write(napis.c_str(),napis.length());  }plik_2"\n"; //plik_2.write("\n",1);plik_2.close(); [/code]Lub też zastanów się nad podziałem "złotych myśli" za pomocą jakiegoś specjalnego znaku np: '\a'