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

Wyszukiwanie fraz z pliku tekstowego

Ostatnio zmodyfikowano 2017-01-12 18:59
Autor Wiadomość
bullersos
Temat założony przez niniejszego użytkownika
Wyszukiwanie fraz z pliku tekstowego
» 2017-01-12 18:41:52
Witam,
robię projekt, w którym trzeba napisać prosty organizator. Zapisuje sobie wydarzenia wraz z datami do pliku tekstowego txt. Wydarzenia są zapisane wierszami w takim mniej więcej formacie:
[12.11.2018] - weqerwqwqe (dom)
[23.1.2019] - manip (praca)
[11.12.2019] - asdf (praca)

Jednym z zadań jest napisanie funkcji, za pomocą której można w konsoli wpisać dowolne słowo, a program powinien pokazywać wszystkie wiersze, w których znajduje się to słowo. Na przykład po wpisaniu frazy: "praca", powinno się wyświetlać:
[23.1.2019] - manip (praca)
[11.12.2019] - asdf (praca)
I właśnie ciągle zmagam się z napisaniem tej funkcji. Próbowałem napisać coś takiego :
C/C++
string fraza;
cout << "Wpisz szukana fraze: ";
ifstream plik;
plik.open( "wydarzenie.txt" );
plik.seekg( 0 );
while( cin >> fraza ) {
    getline( plik, fraza );
    cout << fraza << "\n";
}
plik.close();
Ale wyświetla tylko pierwszy wiersz, nieważne co napiszę. Jak mozna byłoby to zmienić, by uzyskać pożądany efekt. Czy probować coś w ogóle innego?
P-156362
karambaHZP
» 2017-01-12 18:51:07
C/C++
#include <iostream>
#include <string>
#include <fstream>

int main()
{
    std::string my_word { "manip" };
    std::ifstream fin( "test.txt" );
    if( fin ) {
        std::string line;
        while( std::getline( fin, line ) ) {
            if( line.find( my_word ) != std::string::npos ) {
                std::cout << line << '\n';
            }
        }
    }
}

Dane w pliku:
[12.11.2018] - weqerwqwqe (dom)
[23.1.2019] - manip (praca)
[11.12.2019] - asdf (praca)
[12.11.2018] - weqerwqwqe (dom2)
[23.1.2019] - manip (praca2)
[11.12.2019] - asdf (praca2)


Dane wyjściowe:
[23.1.2019] - manip (praca)
[23.1.2019] - manip (praca2)
P-156363
bullersos
Temat założony przez niniejszego użytkownika
» 2017-01-12 18:59:17
Dzięki wielkie, zadziałało, temat do zamknięcia
P-156364
« 1 »
  Strona 1 z 1