[C++] Licznik liter

fisz87
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 5 mar 2021, o 20:29
Płeć: Mężczyzna
wiek: 30

[C++] Licznik liter

Post autor: fisz87 »

Mam problem z programem która treść jest następująca:
Program powinien wczytywać treść tekstu do złożenia z pliku tekstowego o ustalonej nazwie (może być to szukamya.txt). Plik powinien zostać otwarty tylko do odczytu. Dla każdej linii pliku program powinien wypisywać komunikat o numerze linii (począwszy od numeru 1) oraz liczbie małych liter a, które występują w tej linii tekstu. Należy uwzględnić także puste linie, dla których wynikiem będzie oczywiście 0.

Kod jaki zrobiłem i tak nie działa. A jeszcze wynik wczytanego pliku powinien wyglądać w sposób następujący:
Treść pliku szukamya.txt

a
aaa
bbb
aaaaaAAAAA
aa
Prawidłowa treść wypisana przez program to:

Linia 1.: 1
Linia 2.: 3
Linia 3.: 0
Linia 4.: 5
Linia 5.: 2

Kod: Zaznacz cały

#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
int pp()
{
    ifstream plik;
    string linia;
    int licznik;
    char znak_szukany='a';
    plik.open("iliada.txt");
    if(!plik.good())
    {
        cout << "\nNie ma pliku!" << endl;
        plik.close();
    }
    plik >> linia;
    for(int i=0;i<linia.length();i++)
    {
        if(linia[i]==znak_szukany)
            licznik++;
    }
    plik.close();
    return licznik;
}
 
 
 
int main()
{
    cout << "W pliku jest " << pp() << " a.";
Z góry dziękuję za jakieś propozycję :)
Ponury123
Użytkownik
Użytkownik
Posty: 128
Rejestracja: 5 lip 2015, o 14:48
Płeć: Mężczyzna
Lokalizacja: nie wiem
Podziękował: 11 razy
Pomógł: 24 razy

Re: [C++] Licznik liter

Post autor: Ponury123 »

1. Co jest w zmiennej linia po operacji plik >> linia;
2. Jak wczytać kolejne linie z pliku;
3. Jak uwzględnić wielkość liter;
4.Jak wypisać licznik dla każdej linii -> skąd wziąć index linii oraz jak zainicjować zmienną, aby wynik był per linia;

Spróbuj sobie na te pytania odpowiedzieć, w razie problemów pytaj.

Edit: jeszcze warto odpowiedzieć sobie na pytanie czy poniższe zapisy są równoważne.

Kod: Zaznacz cały


int licznik;
//oraz
int licznik = 0;

ODPOWIEDZ