C:无法退出具有多个输入的程序
当我输入exit时,这段代码应该退出,但是当我输入exit时,什么都不会发生,在它退出程序后我输入的任何东西都不会发生。有人能指出哪里出了问题吗?虽然当我不扫描多个输入时,它工作正常C:无法退出具有多个输入的程序,c,C,当我输入exit时,这段代码应该退出,但是当我输入exit时,什么都不会发生,在它退出程序后我输入的任何东西都不会发生。有人能指出哪里出了问题吗?虽然当我不扫描多个输入时,它工作正常 #include<stdio.h> #include<string.h> #include<stdlib.h> int main(){ char cmd[50]; char cmd1[10]; char cmd2[10]; char str; int
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char cmd[50];
char cmd1[10];
char cmd2[10];
char str;
int x, y, sum;
while(1){
scanf("%s%d%c%d", &cmd ,&x, &str, &y);
if(strstr(cmd,"SUM")){
sum = x + y;
scanf("%s %s",&cmd1, &cmd2);
if((strstr(cmd1,"DSP")) && (strstr(cmd2,"X")))
{
printf("%d\n",sum);
}
else
{
printf(" ");
}
}
else if(strstr(cmd,"EXIT"))
{
break;
}
else
{
printf("INVALID INPUT!\n");
}
}
return 0;
}
#包括
#包括
#包括
int main(){
char-cmd[50];
char-cmd1[10];
char-cmd2[10];
char-str;
整数x,y,和;
而(1){
scanf(“%s%d%c%d”、&cmd、&x、&str、&y);
如果(strstr(cmd,“SUM”)){
总和=x+y;
scanf(“%s%s”、&cmd1和&cmd2);
if((strstrstr(cmd1,“DSP”)&&(strstrstr(cmd2,“X”))
{
printf(“%d\n”,总和);
}
其他的
{
printf(“”);
}
}
否则如果(strstr(cmd,“退出”))
{
打破
}
其他的
{
printf(“无效输入!\n”);
}
}
返回0;
}
这取决于您的使用方式,它将等待读取所有格式(或者失败)
相反,我建议您使用例如获取输入,然后检查命令,如果是例如
“SUM”
然后解析命令参数。第一个scanf
读取字符串EXIT
,然后等待您输入一个数字。尝试使用单独的scanf
读取cmd
,然后测试它是否为EXIT
(如果是这种情况,则退出),然后scanf
读取其他值。如果尝试了,它仍会等待我输入一个数字scanf(“%s”,&input);scanf(“%d%c%d”,&x,&str,&y);在下一次扫描之前,您需要测试input
(在注释中的示例中)是否为“EXIT”。