好了,我已经搜索几个地方的答案,这一点,我找到了答案,在同样的问题C++,但它涉及结算cin和东西,我不知道如何翻译,要C。如果这实际上是在其他地方回答的,我提前道歉,我只是错过了。另外,请记住,我基本上是在自学C,除了您在此代码中看到的内容之外,我不知道太多。
基本上,我的问题是这样的:我正在运行一个循环,要求输入,然后使用switch语句来选择发生的情况。在switch接受一个int,它工作正常使用任何数字输入。char但是,当您输入 a时,它只是无限循环,没有机会输入任何其他内容。
假设这与C++我查找的示例中的问题相同- 我不是 100% 确定 - 当我输入时,char它会被添加到缓冲区中,并且永远不会被清除,因此每次它都会循环无效再次使用输入。清除缓冲区C++在C.
这是我的代码,供参考:
int main()
{
while(1)
{
printf("(1-10) -> Run a program | (-1) -> Display menu | (0) -> Quit : ");
int quit = 0;
int select;
scanf("%d", &select);
switch(select)
{
case 1:
printf("%s", pgmRun);
helloWorld();
printf("%s", pgmEnd);
break;
//More cases here
case 0:
quit = 1;
break;
default:
printf("\n");
printf("Error: Invalid input\n");
printf("\n");
}
if(quit == 1)
break;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助,对于这么长的帖子,我们深表歉意。我倾向于啰嗦。:P