好的,所以fgets从文件重定向输入读取行,然后使用这些行计算switch语句。
我正在尝试测试案例“1”,但它不起作用。
这是我的输出:DATA SET ANALYSIS1. Show all the data2. Calculate the average for an experiment3. Calculate the average across all experiments4. QuitSelection: 1
有人知道为什么我的switch语句都没有运行吗?显然var
等于1,所以开关至少应该是printingHELLO
,但是它什么也不做。帮忙?
while(fgets(str,100,stdin) != NULL && (strcmp(str,"4") && strcmp(str,"4\n")))
{
var = atoi(str);
printf("DATA SET ANALYSIS\n1.\tShow all the data\n2.\tCalculate the average for an experiment\n3.\tCalculate the average across all experiments\n4.\tQuit\nSelection: %d\n",var);
switch(var)
{
case '1' :
printf("HELLO\n");
for(j=0;j<i;j++)
{
printf("%s",experiments[j]);
for(k=0;k<10;k++)
{
printf("%d ",data[j][k]);
}
printf("\n");
}
break;
}
}
最佳答案
case '1' :
'1'
是字符1(ASCII 49),而不是整数1,将其更改为:case 1 :
注意,像
'1'
这样的字符文本在C中有类型int
,所以语法是正确的,但不是您期望的行为。关于c - C:switch语句不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22282573/