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

Kurs c++ rozdzial 32- zadanie domowe

Ostatnio zmodyfikowano 2017-08-02 22:34
Autor Wiadomość
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:

C/C++
#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?
P-163783
Luq
» 2017-08-02 22:02:52
if( znalezionapozycja == cin.fail() )
To porównanie nie ma sensu. Powinno być
if( znalezionapozycja == std::string::npos )
P-163788
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
P-163790
« 1 »
  Strona 1 z 1