ofstream czyszczenie

0

Witam
zakladajac ze mamy plik dat.txt w ktorym znajdujasie jakies dane, chce otworzyc ten plik i wpisywac do niego nowe wartosci tylko tak zeby wraz z otwarciem usunely sie stare dane, jak to zrobic?

0

otworzyc go w trybie do zapisu (nie w trybie dopisywania - append, tylko zapisywania - write)
http://www.cplusplus.com/reference/iostream/ofstream/ofstream/

0

ofstream plik;
plik.open("plik.dat");
for(int k=0;k<schowek.size();k++)
{

         plik<<schowek[k][0]<<" "<<schowek[k][1]<<endl;}
      
         plik<<" "<<endl;             
         plik.close();

gdzie powinienem wklecic to write ?

0

powtorze: http://www.cplusplus.com/reference/iostream/ofstream/ofstream/
przeycztales?
zreszta, nie wazne. spojrz na tabelke z flagami i patrz na trunc tak dlugo, az skojarzysz ze masz miec ", ofstream::out|ofstream::trunc)"

0

tyle ze ja zrobilem tak :

            ofstream plik;
            plik.open("plik.dat",ofstream::out|ofstream::trunc);
            for(int k=0;k<schowek.size();k++)
            {
             
             plik<<schowek[k][0]<<" "<<schowek[k][1]<<endl;}
         
             plik<<" "<<endl;            
             plik.close();

zakladajac ze odpalam program majac jakies dane w pliku to one sie kasuja, i wpisuje nowe ktore sie zapisuja, przy ponownym wywolaniu mojej metody wprowadzone dane sie juz nie kasuja, tylko sa dopisywane

0
  1. ten kod jest inny niz kod z Twojego poprzedniego postu, co masz wiec na mysli mowiac "tyle że ja zrobiłem tak"?

  2. zacząłeś od pytania:

zakladajac ze mamy plik dat.txt w ktorym znajduja sie jakies dane, chce otworzyc ten plik i wpisywac do niego nowe wartosci tylko tak zeby wraz z otwarciem usunely sie stare dane, jak to zrobic?
teraz napisałeś:
zakladajac ze odpalam program, majac jakies dane w pliku to one sie kasuja, i wpisuje nowe ktore sie zapisuja
rozumiem więc, że swoj cel osiagnales i teraz masz problem w czyms innym?

odkurzamy napisał(a)

zakladajac ze odpalam program majac jakies dane w pliku to one sie kasuja, i wpisuje nowe ktore sie zapisuja, przy ponownym wywolaniu mojej metody wprowadzone dane sie juz nie kasuja, tylko sa dopisywane
jeżeli Twoja metoda wyglada tak, jak w tym poscie ktory teraz napisales,
i jezeli w Twoim programie, w szczegolnosci w tej metodzie, nie ma wiecej ofstreamow otwierajacych ten plik,
to
albo klamiesz (w co watpie, bo po co),
albo nie wiesz o czym mowisz (co nie jest do wykluczenia),
albo masz ciężko walniety system operacyjny (malo prawdopodobne),
albo uzywasz uszkodzonego kompilatora i/lub uszkodzonej biblioteki std (nie do wykluczenia).
Nawet sumarycznie te rzeczy sa wciaz tak malo prawdopodobne, ze strzelam ze tak sie zawinales, ze wklejasz inny kod niz siedzacy w uruchamianym programie albo ogladasz pliki wyjsciowe nie te co trzeba. Zrob Clean, wywal kopie tego projektu z sasiadujacych katalogow, zrob Rebuild/re-make, i sprawdz jeszcze raz jak sie zachowuje.

serio, jesli nic z tych niestworzonych rzeczy sie nie wydarzylo, ofstream.open z flaga out|trunc sie nie pomylil i zadzialal dobrze, tylko Ty czegos innego nie zauwazyles.

heh, BTW, wiesz, po OPEN wypadaloby sprawdzic czy strumien w ogole sie otworzyl..

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