Znajdowanie wyrazu i wypisanie linii tekstu na wyjście.

Znajdowanie wyrazu i wypisanie linii tekstu na wyjście.
RW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

Cześć!
Mam do napisania program, który wyszukuje w pliku słowo. Gdy już je znajdzie to wypisuje na standardowe wyjście całą linijkę w którym występuje, aż do napotkania znaku końca linii. Nie wiem jak się za to zabrać. Koniecznie musi być to zrobione z pomocą biblioteki string i argumentów wywołania. Napisałem coś takiego.
Proszę o jakieś sugestie.
Dzięki i pozdrawiam!

Kopiuj
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    fstream input(argv[2]);
    string w1(argv[1]);
    string line;
    while(getline(input, line))
    {
        for(int i=0; (i=line.find(w1,i)); i++)
        {
        }
        cout << line << endl;
    }
    system("pause");
    return 0;
}
WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5269
1

Nie znam c++, ale jak chcesz to zerknij:

http://cpp.sh/7vjw

Kopiuj
// Example program
#include <iostream>
#include <string>

using namespace std;
int main()
{
    string texts[4];
    texts[0] = "fancy text fancy text fancy text _4programmers_ fancy text ";
    texts[1] = "test abc 123 test abc 123 test abc 123 test abc 123";
    texts[2] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx _4programmers_ xxxxxxxxxxxxx";
    texts[3] = "12312312312312312312312312312312435435";

    string word_to_find = "_4programmers_";

    for (int i=0; i<4; i++)
    {
        if (texts[i].find(word_to_find) != string::npos)
        {
           cout << texts[i] << endl;
        }
    }
}

output:

Kopiuj
fancy text fancy text fancy text _4programmers_ fancy text 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx _4programmers_ xxxxxxxxxxxxx
 

Mam nadzieje, że o to Ci chodziło

RW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 34
0

A jak to zapisać, aby wypisywało z pliku, bo nie mogę znaleźć rozwiązania?

QB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 82
1
RipvanWinkle napisał(a):

A jak to zapisać, aby wypisywało z pliku, bo nie mogę znaleźć rozwiązania?

Kopiuj
          while (getline(input, line))
          {
                if (line.find("slowo") != string::npos) cout << line << endl;
          }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.