Porównywanie linijek plików tekstowych
Ostatnio zmodyfikowano 2014-06-09 15:39
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-08 16:42:58 Sprawdziłem dla ułatwienia, czy na konsoli będzie działać - też nie działa :/ Oto kod: #include <iostream> #include <fstream> #include <windows.h> #include <time.h> using namespace std;
int main() { string pom, linijka1, linijka2; time_t czas; struct tm * data; char plik[ 80 ]; time( & czas ); data = localtime( & czas ); strftime( plik, 80, "%d-%m-20%y.txt", data ); std::fstream plik2; plik2.open( plik, std::ios::in | std::ios::out ); if( plik2.good() == false ) { MessageBox( NULL, "Nie można uzyskać dostępu do pliku2.", "Wystąpił błąd", MB_ICONERROR ); return 0; } std::fstream plik1; plik1.open( "plik1.txt", std::ios::in | std::ios::out ); if( plik1.good() == false ) { MessageBox( NULL, "Nie można uzyskać dostępu do pliku1.", "Wystąpił błąd", MB_ICONERROR | MB_RETRYCANCEL ); return 0; } while( !plik1.eof() ) { bool zgoda = true; getline( plik1, linijka1 ); getline( plik1, pom ); while( !plik2.eof() ) { getline( plik2, linijka2 ); if( linijka1 == linijka2 ) { zgoda = false; } } if( zgoda == true ) { cout << linijka1 << endl; } plik2.seekg( 0 ); } plik2.close(); plik2.close(); system( "pause" ); }
|
|
pekfos |
» 2014-06-08 22:04:12 Samo ustawienie pozycji odczytu na początek nic nie da, jeśli strumień jest w stanie błędu. plik2.clear() przed plik2.seekg(). |
|
mikson Temat założony przez niniejszego użytkownika |
Zamykam. » 2014-06-09 15:39:52 Już działa! Bardzo dziękuję za pomoc :)) |
|
1 « 2 » |