繁体   English   中英

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

[英]C: Unable to exit program with multiple inputs

当我键入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;
  }

这是因为您使用scanf ,它将等待所有格式被读取(否则将失败)。

相反,我建议您使用例如fgets获取输入,然后检查命令,以及是否为fgets "SUM" 然后您解析命令参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM