Potrzebujesz pomocy z C, C++, perl, python, itp.
Kenay
Posty: 15 Rejestracja: 22 marca 2011, 16:52
Post
autor: Kenay » 13 czerwca 2011, 19:27
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 » 14 czerwca 2011, 12:35
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 » 14 czerwca 2011, 14:15
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 » 14 czerwca 2011, 14:56
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 » 14 czerwca 2011, 15:21
Dziękuję.
Pozdrawiam.
pixelnter
Posty: 11 Rejestracja: 25 kwietnia 2010, 18:49
Post
autor: pixelnter » 23 czerwca 2011, 10:48
Osobiście zamiast (char)32 wolę napisać ' ' . Nie wiem jak dla was, ale dla mnie tak jest czytelniej