Wpisuje do .txt tylko ostatnią linijkę
Ostatnio zmodyfikowano 2017-06-16 18:26
nopedope Temat założony przez niniejszego użytkownika |
Wpisuje do .txt tylko ostatnią linijkę » 2017-06-09 17:56:38 Witam serdecznie Mam w pliku tekstowym zapisane dane np. cos pisze 123 *** tutaj tez 456 *** teraz tu 789 *** Generalnie dwa słowa oddzielone spacją, numer i linijka niżej gwiazdki do oddzielenia. Poniżej podaję kod i mam problem gdyż zarówno strumień, jak i getline zapisują mi do pliku tylko ostatnią linijkę tekstu czyli na przykład***. Muszę mieć licznik linijek, gdyż później muszę jedną z tych linijek usunąć, ale kod dodam jak najpierw uda mi się zapisać całość po usunięciu. #include <iostream> #include <string> #include <fstream> using namespace std; void funkcja() { fstream plik; int licznik = 0; plik.open( "zadanie.txt", ios::in | ios::out ); string temp; if( plik.good() == true ) { while( plik ) { plik >> temp; ++licznik; if( !plik ) break; } cout << "dlugosc temp: " << temp.length(); cout << "\nco wyswietla temp: " << temp << " ile petli przeszlo: " << licznik; plik.close(); plik.open( "zadanie.txt", ios::in | ios::out | ios::trunc ); plik << temp; } else cout << "\nBlad dostepu do pliku\n"; } main() { funkcja(); }
|
|
Garniturek |
» 2017-06-09 18:14:54 Nadpisujesz tekst w pliku, a nie dopisujesz kolejny. Spróbuj tak: plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::app );
|
|
pekfos |
» 2017-06-09 21:20:45 Poprzednia wartość temp jest tracona, więc masz tam tylko wartość z ostatniego wczytywania. |
|
nopedope Temat założony przez niniejszego użytkownika |
» 2017-06-16 18:26:50 Gapa ze mnie, dziękuję za pomoc :) |
|
« 1 » |