Jak policzyć liczby w pliku

0

Witam!

Muszę napisać program który policzy ile liczb występuje w pliku (c++).
Nie wiem jednak do końca jak zrealizować mój plan. Chcę wczytać zwartość pliku z liczbami do jakiegoś stringu, a potem sprawdzić czy cyfry są oddzielone spacją, co oznacza, że dalej zaczyna się kolejna liczba. W jaki sposób wykryć te spacje w stringu? A może całkiem zły sposób wybrałem?

0

Język dowolny?

0

C++ przepraszam ze nie dodałem

0

Mozesz używac eof() - Sprawdza, czy jest koniec pliku. W pętli wczytujesz dopóki !eof() - Co pętle Licznik++;

0

A to nie możesz zrobić:

string liczba;
while(cin >> liczba){
  /* operacje na kolejnych liczbach */
}

Od razu wczytuje ci kolejne liczby do stringa liczba; mogą one być oddzielone dowolną ilością białych znaków (spacja, tabulator, nowa linia itp.) Może być?

Edit: sorry; nie przeczytałem, że trzeba użyć plik. To wtedy można użyć rozwiązanie z ifstream poprzednika

0

Bez kombinowania będzie tak:

ifstream ifs("liczby.txt", ifstream::in);
int i = 0;
double a;
    
while(ifs.good()){
   ifs >> a;
   i++;
}

ifs.close();
cout << i;
0

Dzięki chłopaki, coś wykombinowałem :)

1

Pytania:

  1. Czy w pliku są tylko liczby oddzielone białymi znakami: (spacja, tabulacja, enter) czy może być coś innego?
  2. Czy trzeba uznać za jedną liczbę ciąg: 78678959649674564764536583853853632653458638653865363856356386232624626265426242 ?
    Od odpowiedzi na te pytania zależy sposób radzenia sobie z tym zadaniem.

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