Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wpisuje do .txt tylko ostatnią linijkę

Ostatnio zmodyfikowano 2017-06-16 18:26
Autor Wiadomość
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.
C/C++
#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; //licznik linijek
            if( !plik )
                 break;
           
        }
        cout << "dlugosc temp: " << temp.length(); //te 2 linijkitylko do sprawdzenia poprawnosci pliku,
        cout << "\nco wyswietla temp: " << temp << " ile petli przeszlo: " << licznik; //ile petli przeszlo itd.
        plik.close();
        plik.open( "zadanie.txt", ios::in | ios::out | ios::trunc ); //musze usunac caly plik by od nowa zapisac,
        //na przyklad bez 2 linijki
        plik << temp;
    }
    else
         cout << "\nBlad dostepu do pliku\n";
   
}
main()
{
    funkcja();
}
P-162300
Garniturek
» 2017-06-09 18:14:54
Nadpisujesz tekst w pliku, a nie dopisujesz kolejny. Spróbuj tak:
C/C++
plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::app );
P-162301
pekfos
» 2017-06-09 21:20:45
C/C++
plik >> temp;
Poprzednia wartość temp jest tracona, więc masz tam tylko wartość z ostatniego wczytywania.
P-162306
nopedope
Temat założony przez niniejszego użytkownika
» 2017-06-16 18:26:50
Gapa ze mnie, dziękuję za pomoc :)
P-162596
« 1 »
  Strona 1 z 1