Porównywanie linijek plików tekstowych
Ostatnio zmodyfikowano 2014-06-09 15:39
mikson Temat założony przez niniejszego użytkownika |
Porównywanie linijek plików tekstowych » 2014-06-07 11:57:54 Dlaczego mój kod może nie działać? Chodzi o porównywanie co drugiej linijki pliku1 z każdą linijką pliku2. Jeśli NIE będą takie same należy je dodać do comboboxa. string linijka1, linijka2, pom; cin.sync();
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 ) { _TCHAR buf[ 1000 ]; _stprintf( buf, _T( "Znaleziono: %s" ), lnijka1.c_str() ); SendMessage( hCombo, CB_ADDSTRING, 0,( LPARAM ) buf ); } }
plik1.close(); plik2.close(); Program kompiluje się bez problemu, lecz w comboboxie znajduje się każda co druga linijka pliku1, podczas gdy w pliku2 znajduje się kilka linijek takich samych. |
|
MrPoxipol |
» 2014-06-07 12:29:47 while( !plik1.eof() ) Zło wcielone. Ile razy jeszcze. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 12:31:42 Nie wiem o co chodzi. Zawsze tak czytałem pliki i działało... Poza tym ja wziąłem to z kursu... http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305 |
|
pekfos |
» 2014-06-07 20:09:04 Nie wracasz na początek pliku 2, po przeczytaniu go. while( !plik1.eof() ) Zło wcielone |
Dlaczego? Ta linia jest zła tylko wtedy, gdy jej właściwości nie są uwzględnione dalej, jak tu. Ale to nie jest przyczyna błędu. Każdemu z osobna ;) A poprawienie kursu mogło by ułatwić sprawę. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 21:27:11 @Pekfos, czyli mam dodać po przeczytaniu pliku2 cin.sync(); ? Jeśli tak, to nadal nie działa. :/ |
|
pekfos |
» 2014-06-07 21:42:53 Nie cin.sync(), tylko plik2.seekg(). Tak jakby nie trafiłeś.. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-06-07 21:45:54 Dodałem plik2.seekg( 0 ); , nadal nie działa :/ |
|
pekfos |
» 2014-06-07 21:48:34 Podaj kod. |
|
« 1 » 2 |