Kurs c++ rozdzial 32- zadanie domowe
Ostatnio zmodyfikowano 2017-08-02 22:34
Dw00L Temat założony przez niniejszego użytkownika |
Kurs c++ rozdzial 32- zadanie domowe » 2017-08-02 21:02:10 Hej, mam takie pytanie. Walcze z kodem i nie wiem co jest nie tak. Robi dokladnie cos odwrotnego niz oczekuje :/ mój kod wygląda tak: #include <fstream> #include <iostream>
using namespace std;
bool wczytaniepliku( string nazwapliku, string szukanafraza ) { ifstream plik; string wiersz; plik.open( nazwapliku.c_str() ); if( !plik.good() ) return false; int i = 1; while( getline( plik, wiersz ) ) { size_t znalezionapozycja = wiersz.find( szukanafraza ); if( znalezionapozycja == cin.fail() ) cout << i << " brak" << endl; else cout << i << " " << wiersz << endl; i++; } plik.close(); return true; }
int main() { string fraza; string wiersz; ifstream plik1; plik1.open( "C:/Users/DW00L/Desktop/cpp0x.txt" ); while( getline( plik1, wiersz ) ) cout << wiersz << endl; plik1.close(); cout << "Podaj szukana fraze" << endl; cin >> fraza; cin.good(); wczytaniepliku( "C:/Users/DW00L/Desktop/cpp0x.txt", fraza ); return 0; }
Zamiast w miejsce wyszukanej frazy wypisac wiersz to w to miejsce wypisuje "brak". Nie bardzo wiem dlacego, czy moze ktos mnie naprowadzic na rozwiazanie? |
|
Luq |
» 2017-08-02 22:02:52 if( znalezionapozycja == cin.fail() ) |
To porównanie nie ma sensu. Powinno być if( znalezionapozycja == std::string::npos ) |
|
Dw00L Temat założony przez niniejszego użytkownika |
» 2017-08-02 22:34:26 faktycznie, bez sensu. Teraz hula dzięki bardzo!! temat do zamkniecia |
|
« 1 » |