编译时出错

时间:2012-01-27 19:03:33

标签: c

#include<stdio.h>

int main()

{

  int c, nl;

  nl = 0;

  while ((c = getchar()) ! = EOF){
    if (c =='\n'){
      nl++;
    }
    printf("%d\n", nl);
  }

}

当我尝试使用gcc -o fun2 countline.c进行编译时 我收到此错误

countline.c: In function 'main':
countline.c:12:26: error: expected ')' before '!' token

导致此错误的原因是什么?我错过了什么?我无法理解。

4 个答案:

答案 0 :(得分:7)

不等式运算符是!=,而不是! =。该空间使编译器将!=解释为两个独立的运算符(逻辑否定和赋值),这在该上下文中没有意义。

答案 1 :(得分:2)

简单的间距问题,您需要!=而不是! =所以请修复此问题。

您的代码变为:

#include<stdio.h>

int main()
{
  int c, nl;
  nl = 0;

  while ((c = getchar()) != EOF){
    if (c =='\n')
      nl++;
    printf("%d\n", nl);
  }
}

我也清理了间距。

答案 2 :(得分:2)

你写过! =。那应该是!=。你只是不能在运算符的字符之间加一个空格!

答案 3 :(得分:0)

不是:(c = getchar()) ! = EOF,请使用(c = getchar()) != EOF!=是一个操作员!