[C++] Zliczanie kolejnych znaków z pliku

Witam, chciałbym prosić o jakieś wskazówki, w jaki sposób mogę zliczyć kolejne znaki z pliku. Jestem żółtodziobem jeżeli chodzi o programowanie i mam z tym mały problem, proszę o kilka wskazówek. O co mi mianowicie chodzi, zawartość pliku wygląda powiedzmy tak:

]]]]]]+++]

a, chciałbym, żeby po zliczeniu wyglądało to tak:

6]3+]

Zawartość pliku wpisuje sobie jako chary, wiem, że najlepiej byłoby to zrobić jakąś pętlą, że gdy pierwszy znak jest taki sam jak drugi to licznik zwiększa się o 1 itd dopóki kolejny znak nie jest taki sam. Chciałbym wiedzieć czy powinienem używać do tego kodów ASCII i może jakieś inne cenne wskazówki, z góry dziękuję za pomoc.

Ja bym dał coś takiego (takie coś pomiędzy właściwym kodem, a pseudokodem):

string text = read("file.txt");
string docelowy;
int aktualny = 0;
do
{
size_t licznik = 0;
char wzór = text[aktualny];
while(text[aktualny + 1] == wzór)
{
licznik++;
}
docelowy += to_string(licznik);
docelowy += wzór;
}
while(aktualny + licznik <= text.length)
write("file.txt") = docelowy;

Załatwione.