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

[C++] Problem z przepisaniem pliku bez danego wiersza

Ostatnio zmodyfikowano 2012-01-18 17:25
Autor Wiadomość
jsc
» 2012-01-11 22:56:33
A może otwórz plik tylko do odczytu, wykonaj operacje na jego zawartości zapisanej w wybranej zmiennej, usuń nieaktualnej zawartości i na koniec zapisz zmienioną treść do pustego pliku?
P-47989
hincu
» 2012-01-12 07:52:19
zliczaj liczbe linii w pliku podczas uzycia getline, pozniej tylko sprawdzaj czy linia zawiera wyraz Prowadzacy jesli tak zapisz sobie ta
linie w osobnej zmiennej a nastepnie zapisuj wszystko w osobnym pliku bez tej linii
P-47992
Wonski92
Temat założony przez niniejszego użytkownika
» 2012-01-15 00:00:06
Nie za bardzo mi wychodzi z tą tablicą stringów :/ Znalazłem prawdopodobną przyczynę dlaczego to nie działa. Zrobiłem , żeby program wypisywał dane cout'em zamiast zapisywać to w nowym pliku i przy trzeciej linijce program się wykrzaczał :/ Wywalało błąd aplikacji i program kończył działanie. Może to wina tego , że mam zły sposób czytania danych, albo wina pliku, który czytam. Plik wygląda tak :

Przedmiot: PP
Identyfikator: 1CL


Prowadzacy: Jan Kowalski



Może to być wina, np tego , że niektóre linie są puste?? Jak tak, to jak to zczytać lepiej??
P-48251
Wonski92
Temat założony przez niniejszego użytkownika
» 2012-01-18 17:25:51
Ok rozwiązałem sprawę :D Kod , który wytworzyłem :

C/C++
void kasuj_prowadzacego( string sciezka )
{
    rename( sciezka.c_str(), "test.txt" );
    ifstream tplik( "test.txt" );
    ofstream aplik( sciezka.c_str() );
    string dane, a;
    while( !tplik.eof() )
    {
        getline( tplik, dane );
        if( dane.size() > 10 )
        {
            a = dane.substr( 0, 10 );
            if( a != "Prowadzacy" )
                 aplik << dane << endl;
           
        }
       
    }
    aplik.close();
    tplik.close();
    remove( "test.txt" );
}

temat do zamknięcia ;)
P-48648
1 « 2 »
Poprzednia strona Strona 2 z 2