1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

C help

Discussion in 'C, C++, C#' started by cyberps, Aug 3, 2015.

  1. cyberps

    cyberps Newbie

    Joined:
    Jul 15, 2015
    Messages:
    4
    Likes Received:
    0
    Hi folks,
    I have started to learn in C language before 1 weak, I encounter an example about count lines, words and characters .. this is it

    Code:
    #include <stdio.h>
    #define IN   1  /* inside a word */   
    #define OUT  0  /* outside a word */
    /* count lines, words, and characters in input */  
    main()   {       
        int c, nl, nw, nc, state;
        state = OUT;      
        nl = nw = nc = 0;       
        while ((c = getchar()) != EOF) {
            ++nc;           
            if (c == '\n') {
                ++nl; 
               }
            if (c == ' ' || c == '\n' || c == '\t') {
                state = OUT;    
            }
            else if (state == OUT) {
                state = IN;
                ++nw;
            }
        }       
        printf("%d %d %d\n", nl, nw, nc);   
    } 
    
    when I compile and run it, I write anything in the terminal but it doesn't print nl, nw, nc .. can someone tell me what is the solution please ? :\
     
  2. jazzc

    jazzc Moderator Staff Member Moderator Jr. VIP

    Joined:
    Jan 27, 2009
    Messages:
    2,566
    Likes Received:
    11,026
    Occupation:
    Pusillanimous Knitter
    Location:
    Buenos Aires
    Code:
    c = getchar()) != EOF
    EOF means End of File which in your case is whenever you press Ctrl+D (Linux) or Ctrl+Z (Windows) on the terminal.
     
  3. cyberps

    cyberps Newbie

    Joined:
    Jul 15, 2015
    Messages:
    4
    Likes Received:
    0
    ahaa Ty bro :) .
     
  4. bitm0de

    bitm0de Newbie

    Joined:
    Jun 13, 2015
    Messages:
    12
    Likes Received:
    1
    Code:
    main() {}
    Should be:
    Code:
    int main(void) {}
    most likely... And you should have return 0; at the end of main()'s scope unless you're compiling as C99 or C11.