c - EOF 警告 : multi-character character constant [-Wmultichar]

标签 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;
}

当我编译这段代码时,它仍然存在这个错误:

warning: multi-character character constant [-Wmultichar]

我们如何在 switch 中使用 EOF?

最佳答案

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

case 'EOF':

到:

case EOF:

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

关于c - EOF 警告 : multi-character character constant [-Wmultichar],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18461067/

相关文章:

c - 将第一行替换为空格

c - 为什么我会出现段错误?

c - 使用 SDK 特定的 API 或标准 c 函数

python - ctypes内存管理: how and when free the allocated resources?

c - 将 double 转换为 float 时会发生什么?

c++ - 在 C++ 代码中返回 Obj-C block

c - 为什么该程序不提供 float 和 double 数据类型的输出?

将十六进制转换为十进制

java - 我可以在 Android 上调用从 Java 内部生成图像的 C 程序吗?

c - 我想问一下kea dhcp服务器的使用,希望有人能帮助我