Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

while((c=getchar())!=EOF)

[es] :: C/C++ programiranje :: C/C++ za početnike :: while((c=getchar())!=EOF)

[ Pregleda: 3030 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pwnage
Nista

Član broj: 244973
Poruke: 18
*.dsl.optinet.hr.



Profil

icon while((c=getchar())!=EOF)31.12.2009. u 11:41 - pre 174 meseci
Code:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    /*Write a program to count blanks, tabs and newlines.*/
    
    int c;
    
    int blanks, tabs, nl;
    blanks = tabs = nl = 0;
    
      while((c=getchar())!=EOF)
      {
          if(c==' ')
          blanks++;
        
          else if(c=='\t')
          tabs++;
        
          else if(c=='\n')
          nl++;
      }
    
    
     printf("\nBlanks: %d\nTabs: %d\nNewlines: %d\n\n", blanks, tabs, nl);
    
     getchar();    
     return 0;
}


Pozz ljudi imam problem , evo ovaj kod on broji blank(prazna polja) , newline(nove linije) i tabs...
i sve razumijem int , if , else if i to... ali me ovo EOF uvijek zeza moze mala pomoc...
while((c=getchar())!=EOF)
c=getchahr to znam to je jedinica/znak koji sljedeci bude unesen u tipkovnici dobi ce vrijednost c
i razumijem while petlju... dok c=getchar nije jednako(!=) EOF(end of file) radi sljedecu naredbu ( a to je brojanje blanks,newlinesa i tabsa) .... ali ja ovo End Of File (EOF) neshvacam dok c=getchar nije jednako cemu sta je EOF?
moze mi neko malo pojasnit taj red while((c=getchar())!=EOF)... thanks
 
Odgovor na temu

Picsel
Beograd

Član broj: 39817
Poruke: 440
*.dyn.ravangrad.net.



+7 Profil

icon Re: while((c=getchar())!=EOF)31.12.2009. u 11:59 - pre 174 meseci
Prvo se izvrsava
c=getchar() --- c prima vrednost unetog karaktera, kao sto si i rekao.
Kada promenljiva c dobije vrednost, onda se proverava da li je c!=EOF, to jest da li je vrednost promenljive c razlicita od EOF karaktera. EOF je karakter kao i 'a',' ','\n' itd. Na DOS-u (odnosno komandnoj liniji) EOF karakter ima ascii vrednost 26 i dobija se kombinacijom CTRL+Z. Na Unixu je ascii vrednost EOF karaktera 4 i dobija se pomocu CTRL+D.
U svakom slucaju, EOF oznacava kraj unosa, odnosno kada korisnik unese EOF karakter, zavrsava se while petlja.
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: while((c=getchar())!=EOF)04.01.2010. u 20:32 - pre 174 meseci
Mogao si da proveris ovako
Code:

int c;
c = EOF;
printf("EOF == %i", c);

ili samo
Code:

printf("EOF == %i", EOF);

 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: while((c=getchar())!=EOF)

[ Pregleda: 3030 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.