为什么直接得到default的分支呢?

来源:百度知道 编辑:UC知道 时间:2024/07/05 00:16:25
我还没有输入i的值,直接就执行default
调用函数会影响switch的执行吗?
main()
{
int i;

while (1)
{
system("cls");
printf("This is a list of salary.\n\n");
printf("(1) input workor\n");
printf("(2) modify workor\n");
printf("(3) delete workor\n");
printf("(4) inquire woror\n");
printf("Please select 1-4 (others exit):");

scanf("%d", &i);

switch (i)
{
case 1:
input();
break;

case 2:
modify();
break;

case 3:
delete();
break;

case 4:
inquire();
break;

default:
printf("\nYou select error.\n\n");
getch();
exit(0);
}
}
}
加上fflush(stdin),仍然没有用的,前几天还好好的的,后面把几个子函数加上代码过后就不给我输入i的值,直接执行default语句,应该和子函数

应该不会的呀

补充:
你的程序通过编译了吗?要不把整个程序列出来看看?

我这里运行,他是要等待输入的。
--------------------------

第一次需要等待输入
以后没有等待要看你写的函数有没有bug了

应该是输入缓冲的问题
在输入i之间加fflush(stdin);