Podmiana pliku tekstowego bez nadpisywania

Podmiana pliku tekstowego bez nadpisywania
Z1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Mam problem, otóż mam taki plik tekstowy

Kopiuj
JakiśLogin
0

i taki kod:

Kopiuj
int wynik_liczba;
fstream wynik;
wynik.open(login_o.c_str(), ios::in| ios::out);
wynik>>login_o;
wynik>>wynik_liczba;
wynik_liczba=wynik_liczba+1;
wynik<<login_o<<endl;
wynik<<wynik_liczba<<endl;

W pliku tekstowym znajduje się Login i w nowej linijce liczba 0. Chciałbym żeby ten kod podmieniał ten plik tekstowy na taki sam, z tym że liczba w drugiej linijce byłaby zmieniona na liczbę o 1 większą. Jednak ten kod dopisuje do tamtego pliku a nie podmienia go, co mnie zaskoczyło bo myślałem że aby go nadpisać trzeba dopisać ios:app.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

app to skrót od append, czyli dopisanie nowej treści na końcu istniejącego pliku.

Z1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

No i, o ile się nie mylę, to właśnie robi mój kod, a ja chciałbym podmienić go.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
0

No to go usuń i utwórz nowy, albo otwórz i skasuj całą jego bieżącą zawartość. Dopiero później wpisuj nowe dane.

A najlepiej by było, gdybyś użył jakiegoś konkretnego formatu plików konfiguracyjnych – choćby INI – i za pomocą konkretnych instrukcji wpisał nową wartość do istniejącego elementu, bez babrania się w ręczne parsowanie zawartości.

Podmiana pliku tekstowego bez nadpisywania

Raczej bez dopisywania, by Ty właśnie chcesz nadpisać bieżące dane.

Z1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Aj rzeczywiście mój błąd. Moje możliwości są trochę ograniczone przez wymogi projektu. Może trochę głupie pytanie, ale - w jaki sposób skasować zawartość pliku txt korzystając tylko ze standardowych bibliotek c++?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
0
Kopiuj
std::ofstream ofs;

ofs.open("test.txt", std::ofstream::out | std::ofstream::trunc);
ofs << "Your content here";
ofs.close();

Nic trudnego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.