[C++] Występowanie string w pliku

0

Jest plik "plan.txt" :

Matematyka
Jezyk Polski
Geografia
Historia
Matematyka
Historia
Matematyka

I po uruchomieniu programu, kiedy użytkownik wpisze np. "matematyka", program policzy że 3 razy.

Dotychczasowy kod:

#include <string>
#include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

int ZliczZnaki(string Tekst, char z ) 
{
int uIlosc = 0;
for ( int i = 0; i <= Tekst.length() - 1; ++i)
{
if (Tekst[i] == z)
++uIlosc;
}
return uIlosc;
}
int main(int argc, char *argv[])
{ 
ifstream plik("dane.txt");
    string Tekst;
    getline(plik, Tekst);   

char SzukanyZnak;
cout << "Podaj znak, ktory bedzie liczony: ";
cin >> SzukanyZnak;

cout << "Znak '" << SzukanyZnak << "' wystepuje w tekscie "
<< ZliczZnaki(Tekst, SzukanyZnak) << " raz(y)."
<< endl;

system("PAUSE");
return EXIT_SUCCESS;
}

Na tą chwilę po wprowadzeniu znaku wyświetla "program przestał działać...nastąpi jego zamknięcie...:/"

0

I po uruchomieniu programu, kiedy użytkownik wpisze np. "matematyka", program policzy że 3 razy.

Chcesz szukac stringow, a napisales zeby szukal znaki - cos jest nie tak...:

  1. Pobierasz slowo/zdanie od uzytkownika
  2. Wczytaj linie z pliku jesli nie EOF.
  3. Zliczasz wystapienie tego slowa
  4. Idz do 2.
  5. wyswietl rezultat.

Na tą chwilę po wprowadzeniu znaku wyświetla "program przestał działać...nastąpi jego zamknięcie...:/"

Moze trzeba najpierw sprawdzac czy plik zostal otwarty metoda is_open z istream ....

No i Po co ci conio.h i system("PAUSE") ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1