[ goropad @ 12.03.2016. 12:20 ] @
Code:

#include <stdio.h>

long main()
{
    long nc;
    
    nc = 0;
    while (getchar() != EOF)
        ++nc;
        
    printf("%ld\n", nc); /* %ld - broj tipa long */    
}


E sad, ovo je primer iz knjige. Pise da program broji znakove. Ne razumem. Izvrsio sam program i on samo prikazuje znakove koje unosim. Na enter izlazi novi red i tako sve do nedogled. Izlazim iz terminala sa crtl+c.

Ja koliko vidim, logicki, ovaj program bi trebao da mi prikaze broj znakova koji sam uneo kad pritisnem enter ? Jel moze pomoc?
[ scoolptor @ 12.03.2016. 12:33 ] @
Probaj CTRL+Z ili CTRL+D, zavisno od tvog sistema.
[ goropad @ 12.03.2016. 12:44 ] @
Hm. Radi za dva puta kad se stisne ctrl+d. jel moze to lakse, ovo mi je bezveze, inace linux ubuntu, laptop

Pokusavam ovo:

Da ukucavam karaktere a oni da se ispisuju i kad stisnem enter, da mi prikaze u novom redu broj karaktera koji sam uneo, ali samo sa funkcijom main(), deluje mi prosto :)

Code:

#include <stdio.h>

long main()
{
    long nc;
    
    nc = 0;
    while (getchar() != EOF)
        ++nc;
    if(getchar() == '\n')
        printf("%ld\n", nc); /* %ld - broj tipa long */    
}


...ali nece.
[ Rapaic Rajko @ 14.03.2016. 10:06 ] @
Probaj ovako:

Code:

 #include <stdio.h>

long main()
{
    long nc;
    
    nc = 0;
    char c;
    while ((c = getchar()) != EOF) { // zapamtimo char i testiramo ujedno
        ++nc;
        if(c == '\n') {
            printf("%ld\n", nc); /* %ld - broj tipa long */    
            nc = 0; // ovo ako brojimo ispocetka
        }
}


Pozz