C新手找不到语法错误

4 c

我在以下代码中找不到错误:

#include <stdio.h>
#define LOOP    0
#define ENDLOOP 1
main()
{
  int c, loop;
  loop = LOOP;
    while ((c = getchar()) loop != ENDLOOP) {
      if (c == 'e'|| c == 'E') {
        printf ("END LOOP\n");
        loop = ENDLOOP;
      }
      else if (c == 'c' || c == 'C')
        printf ("Cheese\n");
      else 
        printf ("Not Cheese\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

终端给我这个错误:

1-1.c: In function ‘main’:
1-1.c:8: error: syntax error before ‘loop’
1-1.c: At top level:
1-1.c:13: error: syntax error before ‘else’
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

你有一个问题:

((c = getchar()) loop != ENDLOOP)
Run Code Online (Sandbox Code Playgroud)

应该:

((c = getchar()) && loop != ENDLOOP)
Run Code Online (Sandbox Code Playgroud)

我建议以完全不同的方式编写它:

#include <stdio.h>
int main()
{
    int c;
    while (c = getchar()) {
        if (c == 'e' || c == 'E') {
            printf ("END LOOP\n");
            break;
        }
        if (c == 'c' || c == 'C') {
            printf ("Cheese\n");
        } else {
            printf ("Not Cheese\n");
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为这样做错误的机会较少.您可能还想考虑使用tolower.