我在一本书中遇到了一个问题,当我在MSDOSBox TurboC ++中运行代码对于Windows 7时,它显示了我意想不到的行为: -
代码如下: -
#include <stdio.h>
#include <conio.h>
void main()
{
char s = 3;
switch(s)
{
case 1 :
printf("\nDiamond");
break;
case 2 :
printf("\nSpades");
break;
default :
printf("\nHeart");
break;
}
printf("\nI thought something like this");
getch();
}
现在问题是......
默认情况下的声明从未打印过。它只打印“我想这样的东西”
我收集了那个 在案例中 char被视为ASCII代码中的值
唉... 在这里,char s的值已被赋予3而不是'3' 但又来了 至少应该打印默认情况,即使该值与任何情况都不相同
好吧......如果这有帮助..我试图把
case 3 :
而不是
default :
现在声明即printf(“\ nHeart”);执行并在屏幕上打印“Heart”
答案 0 :(得分:3)
您是否从源中剪切/粘贴此代码,或重新键入?如果您重新输入,请返回并确保在原始文件中正确拼写default
。
通常不会引发编译器警告的常见错误是为最后一个标签键入defualt
而不是default
。