如何在c中扫描输入数据?

时间:2015-09-21 11:57:30

标签: c

我有一个案例,我想创建一个循环,当用户输入数字0时将停止,在该循环中我想做两件事:

  1. 如果用户想要添加数据,则用户必须输入数字“1”,然后输入数据(浮点数),例如:1 2
  2. 如果用户想要删除数据,则用户必须输入数字“2”,此后不附带任何数据。例如:2
  3. 用户输入示例:

    1 5
    
    1 3
    
    2
    
    0
    

    我写的C代码是这样的:

    while(option != 0){
        scanf("%d %f",&option,&b);
        if(option == 1){
            Add(&Q,b);
        }else if(option == 2){
            Del(&Q,&b);
        }
    }
    

    但我有一个问题,当我要删除数据时,我必须输入数字“2”,只输入“2”,但由于这部分代码:

    scanf("%d %f",&option,&b);
    

    我不能这样做,我仍然需要输入两个数据(例如当我想添加数据时),但是在删除选项中我只需要输入数字“2”。

    如何做到这一点?,帮助我们,谢谢。

2 个答案:

答案 0 :(得分:2)

您只需在不同的b中输入数据optionscanf即可。首先检查option,如果是1,则仅在b中输入。像这样的东西 -

while(option != 0){
   scanf("%d",&option);   // but always check return of scanf
   if(option == 1){
        scanf("%f",&b);
        Add(&Q,b);
   }
   else if(option == 2){
      Del(&Q,&b);
   }
}

答案 1 :(得分:2)

只有在检查b的值后才能获取变量option的用户输入。仅当输入的option1时,才会生成b

while(option != 0) {
    scanf("%d", &option);
    if (option == 1) {
        scanf("%f", &b);
        Add(&Q,b);
    } else if(option == 2) {
        Del(&Q,&b);
    }
}