EOF警告:多字符字符常量[-Wmultichar]

Pal*_*rma 0 c

#include <stdio.h>
int main(void)
{
  int c, blank, tab, lines;
  int till = 0;
  blank = tab = lines = 0;
  while(till == 0)
    {
      c = getchar();
      switch(c)
    {
    case ' ' :
      blank++;
    case '\t' :
      tab++;
    case '\n' :
      lines++;
    case 'EOF' : /* warning: multi-character character constant [-Wmultichar] */
      till = 1;
    }
    }
  printf("Blanks :%d Tab :%d Lines :%d\n", blank, tab, lines);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我编译此代码时,它仍然存在以下错误:

警告:多字符字符常量[-Wmultichar]

我们如何在一个switch?中使用EOF ?

Pau*_*l R 10

在EOF案例中你有一个小错误 - 你需要改变:

case 'EOF':
Run Code Online (Sandbox Code Playgroud)

至:

case EOF:
Run Code Online (Sandbox Code Playgroud)

在更改之后,代码应该编译并运行,但为了使其正确运行,您需要break;在每个案例的末尾添加一行.