gpt4 book ai didi

C: switch 语句不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 07:19:43 24 4
gpt4 key购买 nike

好的,所以 fgets 从文件重定向输入中读取行,然后使用这些行来评估 switch 语句。
我正在尝试测试用例“1”,但它不起作用。
这是我的输出:数据集分析
1.显示所有数据
2. 计算实验的平均值
3. 计算所有实验的平均值
4.退出
选择:1

有谁知道为什么我的 switch 语句都没有运行?显然 var 等于 1,因此开关至少应该打印 HELLO,但它什么都不做。帮忙?

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' 这样的字 rune 字在 C 中的类型为 int,因此语法是正确的,但不是您预期的行为。

关于C: switch 语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22282573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com