Zapis do pliku, ochrona przed zamknięciem systemu

0

Hej, mam problem z pewnym zagadnieniem, otóż chcę napisać program, który będzie zapisywał kody wprowadzone przez użytkownika. Zasada jest prosta, użytkownik sczytuje/podaje kod, kod jest zapisywany do pliku csv.
Problem pojawia się przy zapisie do pliku. Jeżeli tworzę program, gdzie jest czytam kod określoną ilość razy, to jest ok. Przykład:

ofstream plik ( "log.txt" );
int i = 0; 
string tekst;
while ( i<10 ){
   cout << i+1 << ": ";
   cin >> tekst;
   tekst += "\n";
   plik << tekst;
}

Chciałbym zapisywać do pliku niezależnie od tego ile użytkownik razy będzie chciał zapisać kod. Niestety pętla while( true ) nie rozwiązuje mojego problemu.
Zastanawiałem się czy dobrym pomysłem będzie zapis przy tym jak użytkownik wyłącza system windows (system dostaje event'a, że musi zostać zamknięty, wówczas plik z wprowadzonymi danymi zostaje zapisany).
Jednak wariant ten nie jest bezpieczny, przy nieoczekiwanym zamknięciu dlatego zastanawiam się jak po każdym wprowadzonym kodzie zapisać plik (to znaczy: wczytanie kodu, zapis do pliku, inny wczytany kod, zapis do pliku, itd).

0

Problem został rozwiązany (na chwilę obecną). Powyższy kod wystarczyło zmienić w następujący sposób:

 
ofstream plik ( "log.txt" );
int i = 0; 
string tekst;
while ( true ){
   cout << i+1 << ": ";
   cin >> tekst;
   tekst += "\n";
   plik << tekst;
   plik.flush();
}

Być może komuś to będzie potrzebne w przyszłości :).
Jeżeli ktoś posiada wskazówki w jaki sposób można efektywniej rozwiązać problem, bardzo proszę o pomoc :)

0

A co chcesz tu efektywniej robić? flush() robi dokładnie to chcesz. Jak nie robisz tego kilka milionów razy na sekundę to bym się nie przejmował (:

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