Odczyt z pliku i zapisanie odczytanej wartości do drugiego pliku
Ostatnio zmodyfikowano 2016-03-18 22:20
mikius Temat założony przez niniejszego użytkownika |
Odczyt z pliku i zapisanie odczytanej wartości do drugiego pliku » 2016-03-18 21:38:50 Witam, dopiero uczę się programowania i mam problem z zapisaniem do pliku wyjsciowego odczytanej wartości z pliku wejsciowego. Zapisuje mi jedynie ostatnia linijkę i naprawdę nie mam pomysłu jak to naprawić... Chodzi mi o to, żeby tekst, który jest już zapisany w pliku wyjsciowym został przepisany do pliku wyjściowego. Prosze o pomoc :) #include <iostream> #include <string> #include <fstream> using namespace std; int main( int argc, char * argv[] ) { string linia; ifstream plik; ofstream potok; plik.open( "plik_wejsciowy.txt" ); if( plik.good() == false ) { cout << "Nie ma pliku" << endl; } else if( plik ) { while( getline( plik, linia ) ) { cout << linia << endl; } } potok.open( "plik_wyjsciowy.txt", ios::out ); if( potok.good() == false ) { cout << "Nie ma pliku" << endl; } else { do { getline( plik, linia ); potok << linia << endl; } while( linia == "" ); } potok.close(); plik.close(); system( "pause" ); return 0; }
. |
|
carlosmay |
» 2016-03-18 21:49:37 Zapisuje mi jedynie ostatnia linijkę i naprawdę nie mam pomysłu jak to naprawić |
Czytasz plik do końca i nie cofasz się do początku pliku, aby ponownie wczytać dane. A do pliku wyjściowego zapisuje się to co jest zapisane w zmiennej 'linia' z pierwszego odczytu. Sprawdź debuggerem. Albo zamknij plik i otwórz go ponownie przed drugiem odczytem, albo otwórz w trybie dostępu swobodnego i cofnij wskaźnik odczytu.@edit: wystarczy cofnąć wskaźnik odczytu do początku pliku. plik.clear(); plik.seekg( 0 );
|
|
mikius Temat założony przez niniejszego użytkownika |
» 2016-03-18 22:20:58 Kurcze o tym nie pomyślałem... Wielkie dzięki teraz działa tak jak chciałem :) |
|
« 1 » |