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

Odczyt z pliku i zapisanie odczytanej wartości do drugiego pliku

Ostatnio zmodyfikowano 2016-03-18 22:20
Autor Wiadomość
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 :)
C/C++
#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;
}
.
P-146173
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.
C/C++
plik.clear(); // wrazie bledu odczytu
plik.seekg( 0 ); // cofnij do początku pliku[/cpp]
P-146174
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 :)
P-146176
« 1 »
  Strona 1 z 1