C:无法退出多个输入的程序

时间:2014-11-29 19:10:53

标签: 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 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;
  }

1 个答案:

答案 0 :(得分:2)

由于您使用scanf的方式,它会等待所有格式被读取(或失败)。

相反,我建议您使用例如输入fgets,然后检查命令,如果是,则g。 "SUM" 然后解析命令参数。

相关问题