[ lord_NIKON @ 04.09.2005. 15:36 ] @
Poceo sam da radim knjigu od Dennisa Ritchie-a : C programming language i naisao sam na jedan problem. Radi se o programu koji posle unosa par redova texta treba da ispise koliko su se puta pojavljivali brojevi od 1 ... 9.
U principu vecinu koda razumem ali mi jedna stvar nije jasna. Kako prekinuti textualni ulaz.
Evo koda
Code:

#include <stdio.h>
/* count digits, white space, others */
main()
{
    int c, i, nwhite, nother;
    int ndigit[10];
    nwhite = nother = 0;
    for (i = 0; i < 10; ++i)
        ndigit[i] = 0;
    while ((c = getchar()) != EOF)
        if (c >= '0' && c <= '9')
            ++ndigit[c-'0'];  
        else if (c == ' ' || c == '\n' || c == '\t')
            ++nwhite;
        else
            ++nother;
    printf("digits =");
    for (i = 0; i < 10; ++i)
    printf(" %d", ndigit[i]);
    printf(", white space = %d, other = %d\n",
    nwhite, nother);
}


Znaci kad getchar() vrati EOF program istampa podatke i zavrsava se. Ali za sada ne uspevam da vratim EOF. Pokusavao sam da stavim i '\0' ali opet se nista ne desava.Znam da je EOF = -1 ali kako ovo vratiti sa funkcijom getchar()
Ima li ko kakvu ideju u vezi ovog primera.
[ De La Noche @ 04.09.2005. 16:38 ] @
Posto je standardni ulaz sa tastature,
probaj sa CTRL+Z, to je EOF

Pozdrav
[ lord_NIKON @ 04.09.2005. 18:03 ] @
Ovo mi nije odradilo posao u Shellu sam dobio sledeci odgovor :
Code:

[1]+   STOPPED ./lcount


lcount je ime programa, a compiler je GCC.
Stvarno nemam ideju sta bi mogao jos da uradim
[ rumpl @ 04.09.2005. 20:31 ] @
Ja iskompajlirao tvoj prog i radi super.
Kao EOF ctrl+d

Cao
[ sucur @ 04.09.2005. 21:15 ] @
Mozes i F6.
[ lord_NIKON @ 05.09.2005. 16:17 ] @
Citat:
rumpl :
Ja iskompajlirao tvoj prog i radi super.
Kao EOF ctrl+d


E ovo funkcionise
[ rumpl @ 05.09.2005. 20:59 ] @
Pa mislim stvarno sam najbolji :)