c - 需要帮助 C 中的 Switch 语句

标签 c switch-statement

我为类写了这个,当你输入字母时,它应该返回与字符相关的气体。到目前为止,无论任何人能提供什么帮助,我只能让屏幕返回“未知”。

#include <stdio.h>

int
main(void)
{
char color; /* input- character indicating gass */

// Color of the gas 
printf("Enter first letter of the color of cylinder > ");
scanf_s("%c",&color); /* scan first letter */

/* Display first character followed by gas */
printf("The gas in the cylinder is %c", color);
switch (color) 
{
    case 'O':
    case 'o':
        printf("Ammonia\n");
        break;

    case 'B':
    case 'b':
        printf("Carbon Monoxide\n");
        break;

    case 'Y':
    case 'y':
        printf("Hydrogen\n");
        break;
    case 'G':
    case 'g':
        printf("Oxygen\n");
        break;

    default:
        printf("unknown\n");
} 

return(0);
}

最佳答案

可能“int”是 4 个字节,而 switch 只看一个字节。因此交换机可能只能看到颜色的高位 0x00 字节。我要尝试的第一件事是将颜色从 int 更改为 char。

关于c - 需要帮助 C 中的 Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22100680/

相关文章:

C - 有什么方法可以使用位检查来检查数字是否等于 1?

c - Linux 编译简单的程序以在 x86 和 x64 上运行

networking - 路由器与交换机(网络地址转换)

android - switch 执行选项菜单中的两种情况

c++ - 根据数据包类型更改行为,避免 switch 语句

java - 为什么switch on String会编译成两个switch

c - 如何在 OSX 中将 C 编译为原始二进制文件?

c - 尝试使用 MPI_Recv 接收 vector

c - 从 YYYYMMDDHHMMSS 字符串获取 time_t 的最快方法

c - Domino 程序问题