[ ibro @ 10.12.2004. 11:23 ] @
treba da napravim program koji ce prebrojati sve rijeci nekog file i izbaciti rezultat.
kako bih to mogao da uradim.
ja sam ovako kontao. prije svega trabam da kopiram neki file, kopirao sam ga. onda sa funkcijom
Code:

fscanf(izlaz, "%s", rijec);

skeniram rijeci. s tim da mi je izlaz pointer na file koji kopiram. a rijec mi je string.
ah sad uzmem da je neki znak , recimo
Code:

ch = fscanf (infile, "%s", wort) ;

i onda da sa while petljom pnavljam dok ch != EOF

a kako sad da izbrojim rijeci.

da li bih moga to da uradim tako sto cu brojati prazne prostore.

hvala
[ mower from ... @ 10.12.2004. 21:56 ] @
Mozes da probas ovako
Code:

while(ch!=EOF)
{
if(ch==' ' || ch=='.' || ch==',')
broj_reci++;
ch=fgetc(infile);
}

[ Dejan Lozanovic @ 11.12.2004. 14:06 ] @
Pa ne bi mogao da brojis preko razmaka iz prostog razloga pogledaj ovaj string
"kontra. . . . . . test" (ubacene . namerno da bi se videlo vise razmaka ).

inace ukoliko je cisti C u pitanju a pocetni string ne moras da cuvas mozes da koristis strtok, napomena ova funkcija ce menjati originalni string. Pa ukoliko ti originalni string treba prvo napravis kopiju.

Predonst strtok-a u odnosu na scanf grupu funkcija je taj sto ti dozvoljava da sam odredis koji su to karakteri koji vrse deljenje izmedju dva tokena.
[ ibro @ 12.12.2004. 10:21 ] @
Da li bi mi mogao malo detaljnije objsnit kako se koristi ta funkcija.
a je li vazno ako neku varijablu deklarisemo prvu ili drugu. i da li to moze imati uticaja na tok programa
[ leka @ 12.12.2004. 15:35 ] @
ibro, za pocetak pocni od sledeceg programa:
Code:

#include <iostream>
#include <string>

using namespace std;

int main() 
{
  string word;           // ulazni bafer za reci.
  int cnt = 0;

  //--- Citaj reci/tokens iz ulazne struje
  while (cin >> word) 
  {
    cnt++;
  }
  cout << "Broj reci/tokena: " << cnt << endl;
  return 0;
} // main() function