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

Newbie C problems -> brojanje karaktera u inputu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Newbie C problems -> brojanje karaktera u inputu

[ Pregleda: 3385 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 15:25 - pre 190 meseci
Pozdrav svima za pocetak.
Skoro sam poceo da radim u C-u , i vec na samom pocetku , program iz knjige mi ne radi kako treba.
Program jeste krajnje jednostavan ali za mene i nije bash jer sam newbie =)

code programa iz knjige koji naravno ne radi
Code:
/* Brojanje karaktera u inputu */ 


#include <stdio.h>

main()
{
      long nc;

      nc = 0;
      while (getchar() != EOF)
                ++nc;
      printf("%ld\n", nc);  /* %LD\N */

}

On jednostavno treba da izbroji koliko ima karaktera u inputu.

Ja sam malo procackao ovaj code i dobio sam od prilike ono shto je i trazeno (broj karaktera u inputu) samo shto ih ispisuje pogresno =)
Code:
/* Brojanje karaktera u inputu */ 

#include <stdio.h>

main()
{
      int i;
      
      for(i = 0; getchar() != EOF; i++)
      printf("%d\n", i);
}

Rezultat ovog mog cod-a ispada
asd /* input */
0
1
2
3

Sta treba da se doda/ispravi u ovom poslednjem cod-u da bi ispisao samo recimo kranji broj tj broj 3 u ovom mom primeru.
I josh neshto.. Sta nije uredu sa prvim cod-om ?

Pozdrav
s1cK
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.crnagora.net.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 15:41 - pre 190 meseci
Prvi (kod iz knjige) ti je ispravan, i bolje je raditi tako nego kako si ti zamislio :)

A tvoj primjer bi trebao da izgleda ovako:
Code:

/* Brojanje karaktera u inputu */ 

#include <stdio.h>

main()
{
      int i;
      
      for(i = 0; getchar() != EOF; i++){}
      printf("%d\n", i);
}
 
Odgovor na temu

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 16:20 - pre 190 meseci
Ne znam da li ja neshto radim pogresno ili sam pogresno razumeo ovo u knjizi.

Ovaj program iz knjige , kad kompajliram i startujem, upisem npr abc unutar programa i enter, treba da mi ispise 3 ili .. ? Ako sam ja sve to dobro procitao i razumeo , trebalo bi da ispise 3.
Kod mene posle kompajliranja ne ispisuje nishta , vec me samo prebaci u sledeci red... kao da funkcija printf() ne radi.

Inace za rad u c-u koristim Dev-C++ version 4.9.9.2.


Pozdrav
s1cK
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

Black3maj
Beograd

Član broj: 113924
Poruke: 59
*.adsl.beotel.net.



Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 18:10 - pre 190 meseci
Pa da bi ti ispisao nesto moras da na kraju lupis ctrl+z pojavice se znak ^z i ovo kompajler razume kao eof,a ako ti ne ispisuje nista vec te vrati u kompajler mozes program da dizes iz command promta(dev-c izbaci i exe)
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.crnagora.net.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 21:29 - pre 190 meseci
Da na winu ti je CTRL+Z == EOF a na lnx-u CTRL+D ;)
 
Odgovor na temu

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 21:31 - pre 190 meseci
Ok
Verovatno me compiler zeza.
Jel ima mozda neko preporuku koji compiler da koristim , a da je mali (like Dev-C++) i da sadrzi biblioteke =)
ah da .. i da je free =)

Pozdrav
s1cK
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: Newbie C problems -> brojanje karaktera u inputu07.04.2007. u 21:58 - pre 190 meseci
Ne, ne zeza te kompajler.
Code:
while (getchar() != EOF)

U uslovu je kao sto vidimo navedeno EOF (ASCII kod End Of File) koji, kako rekose ljudi gore predstavlja CTRL+Z na Windows-u, odnosno CTRL+D na Linuxu. Tako da se citanje znaka sa stdin u tvom primeru izvrsava sve dok je procitani znak razlicit od EOF, kada procita EOF prekida se petlja i ispisuje se sadrzaj brojaca nc.

Ako hoces da se citanje vrsi sve do pritiska enter-a, tada bi bilo:
Code:
while (getchar() != '\n')


Nadam se da ti je sada jasno zasto se u prvom primeru posle otkucaja enter-a ne ispisuje nista!
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Newbie C problems -> brojanje karaktera u inputu

[ Pregleda: 3385 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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