[+] C++ - zliczanie odst

Potrzebujesz pomocy z C, C++, perl, python, itp.
Kenay
Posty: 15
Rejestracja: 22 marca 2011, 16:52

[+] C++ - zliczanie odstępów, użycie biblioteki fstream

Post autor: Kenay »

Witam.
Problem polega na tym, że program nie zlicza odstępów z zawartością danego pliku.

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main(){
    ifstream in("Scopy.cpp");
    string s, line;
    int i;
    i = 0;
    while(getline(in, line)){
                      s += line + "\n";
                      if (s==" ")
                         i++;
    }
    cout << s << endl;
    cout << i;
    system ("pause");
    return 0;
} 
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Strumień wejściowy musisz analizować (czytać) po znaku i jeśli odczytany znak jest znakiem białym (spacja, znak końca linii bądź co jeszcze zechcesz) to licznik znaków należy zwiększyć w przeciwnym razie analizujemy kolejny znak.
Kenay
Posty: 15
Rejestracja: 22 marca 2011, 16:52

Post autor: Kenay »

Mógłbyś to przedstawić w postaci kodu źródłowego. Bo niestety z C++ jestem dość początkujący.

Pozdrawiam
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Proszę

Kod: Zaznacz cały

#include <fstream>
#include <iostream>
#include <string>
using namespace std;

int main(){
    ifstream in("Scopy.cpp");
    char c;
    int i(0);

    while(in.good()){
         c = in.get();
         cout << c;
         if (c == (char)32) //spacja
           i++;
    }
    cout << "naliczylem " << i << " znakow spacji" << endl;
    //system ("pause");
    in.close();
    return 0;
}
if (c == (char)32) oznacza, że badamy czy znak jest spacją (32 to wartość znaku spacji w tablicy ASCII)
Kenay
Posty: 15
Rejestracja: 22 marca 2011, 16:52

Post autor: Kenay »

Dziękuję.
Pozdrawiam.
pixelnter
Posty: 11
Rejestracja: 25 kwietnia 2010, 18:49

Post autor: pixelnter »

Osobiście zamiast (char)32 wolę napisać ' '. Nie wiem jak dla was, ale dla mnie tak jest czytelniej
ODPOWIEDZ