gpt4 book ai didi

c - 在 C 中的 switch case 中选择默认值后,我似乎无法再次循环

转载 作者:行者123 更新时间:2023-11-30 15:44:13 24 4
gpt4 key购买 nike

大家好,我编写了类似肯德基菜单的代码,并且我让它工作了(终于),但是当我输入“菜单”数字以外的内容时,例如:字母“A”,我就是无法得到它再次循环正常,而是完成程序

#include <stdio.h>
#include <stdlib.h>

int main()
{
char counter='y';
float totalprice=0;

while (counter=='Y' || counter=='y')
{
int menu;
float price=0;

printf("\nplease select from menu:");
scanf (" %i", &menu);

switch(menu)
{
case 1: {
printf("\none hotbox1 =RM10.50");
totalprice=totalprice+10.50;
break;
}
case 2: {
printf ("\none hotbox2=RM10.60");
totalprice=totalprice+10.60;
break;
}
case 3:{
printf ("\none hotbox3=RM10.70");
totalprice=totalprice+10.70;
break;
}
default : {
printf ("\nplease enter proper number please:");
scanf("%2f", &menu);
break;
}
}

printf("\n\nadd order?(Y/N):");
scanf (" %c", &counter);
}

printf("\n\nThe total price is: %f", totalprice);
return 0;
}

最佳答案

您应该首先使用 fgets() ( reference here ),然后使用 sscanf() ( reference here) ),检查它的返回值是否是数字。

char inputBuffer[MAX_BUFFER];

do
{
fgets(inputBuffer, MAX_BUFFER, stdin);
}
while(sscanf(inputBuffer, "%d", &menu) != 1)

关于c - 在 C 中的 switch case 中选择默认值后,我似乎无法再次循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595376/

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