我正在尝试编写一个程序,该程序涉及将字符比较作为菜单系统的一部分,用于解码电阻代码的程序。在菜单末尾,它询问您是否要解码另一个电阻,如果用户选择"is",则重复该程序。

这是我到目前为止的代码:

  //used for repeating input menu
  int menu = 0;
  char menuChoice = 0;

  //rest of program goes here

  printf("Do you want to decode another resistor? (y/n)");
  scanf("%c", &menuChoice);

  while(menuChoice != "y" && menuChoice != "Y" && menuChoice != "n" && menuChoice != "N")
  {
    if(menuChoice != "Y" && menuChoice != "y")
    {
      if(menuChoice == "N" || menuChoice == "n")
      {
        menu = 0;
      }

      else
      {
        printf("Invalid choice.");
      }
    }
  }

当我尝试使用GCC进行编译时,最终会收到一条警告,指出“指针与整数之间的比较”。由于scanf仅接受一个指针,因此我不知道将扫描的char与“Y”或“n”进行比较的精确程度。我在这里想念什么吗?

最佳答案

您正在使用字符串文字语法"a"而不是char文字语法'a'
More about the difference

08-16 09:51