C: Код ниже не может быть скомпилирован? - PullRequest
0 голосов
/ 01 января 2011
  #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); 
   } 

Я получил книгу K & R, но есть некоторые коды, которые не компилируются!

она дает мне - 19 C: \ Users \ Nom \ Desktop \ Untitled1.c неверное значение lvalue в назначении


edit: теперь это работает, спасибо, ребята, но теперь это ничего не делает!оператор printf не работает.Он открывает консоль DOS, я набираю что угодно и просто возвращаю новую строку.Я использую Dev-C ++ 4.9.9.2


edit: я поместил оператор printf в цикл while, и теперь он работает.спасибо

Ответы [ 2 ]

6 голосов
/ 01 января 2011

В if (c == ' ' || c == '\n' || c = '\t') последний =, вероятно, должен быть ==

2 голосов
/ 01 января 2011
       if (c == ' ' || c == '\n' || c = '\t') 

вам не хватает = в финале или предложении, должно быть

       if (c == ' ' || c == '\n' || c == '\t') 
                                       ^^ here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...