ile liter a jest w pliku

0

Cześć, mam za zadanie napisać kod który zliczy ile liter "a" występuje w pliku w kolejnych słowach , za każdym razem wyświetla mi się że liter a jest tylko dwie, a ma być 23. Proszę o pomoc

#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main()
{
char s = 'a';
int ile_razy=0;
string slowo;
fstream plik;

plik.open("spr.txt", ios::in);
if(plik.good() == true)
{
	while(!plik.eof())
	{
		getline(plik, slowo);
	}
	plik.close() ;
}

for (int i = 0; i < 2; i++)
{
    ile_razy = count(slowo.begin(), slowo.end(), s);
    if(!ile_razy==0)
    {
        cout<<s<<" - "<<" "<<ile_razy<<endl;
    }
 s++; 
}
return 0;

}

1

for (int i = 0; i < 2; i++) — jaka była idea tej pętli? Bo na razie dwa razy robisz dokładnie to samo — zliczasz, ile razy w tym samym słowie występuje litera a.

3

Ogólnie to sensu dużej części twojego kodu nie pojmuję, jak np. inkrementacja zmiennej znakowej 's', lub tak jak napisał @Althorion podwójne zliczanie w pętli.
Albo pętla while, w której nadpisujesz za każdą iteracją wartość zmiennej 'slowo', po czym zliczasz litery 'a' w ostatnim odczytanym z pliku słowie.

#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

int main()
{
  char s = 'a';
  int ile_razy = 0;

  string slowo;
  fstream plik;

  plik.open("spr.txt", ios::in);

  if(plik.good() == true)
  {
      while(!plik.eof())
      {
          getline(plik, slowo);
          ile_razy += count(slowo.begin(), slowo.end(), s);
      }
      plik.close();
  }

  cout<<s<<" - "<<" "<<ile_razy<<endl;

  return 0;
}
2
xyzwg napisał(a):

... który zliczy ile liter "a" występuje w pliku w kolejnych słowach ...
Ale zagmatwałeś!
dla pliku:

xaaax yaay zaz

odpowiedz ma być 6 czy 3 2 1 ?

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