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

标签 c

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

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

用户输入示例:

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”。

如何简单地做到这一点?请帮助我,谢谢。

最佳答案

仅在检查 option 的值后才获取变量 b 的用户输入。仅当输入的 option1,scanf 为 b

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

关于c - 如何在c中扫描输入数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694641/

相关文章:

c - C 中的多个数据结构

c - 不同{结构的 "if"句子之间的区别

C/C++ : printf use commas instead of dots as decimal separator

objective-c - 指针和opengl绘图的问题

c - SIGSEGV 段错误,不同的消息

c - 使用 malloc、struct 和 char * 的堆损坏

c - 使用 C 中的 openmp,如何并行化包含用于 qsort 的嵌套比较函数的 for 循环?

c - 使用 ansi C 中的字典将完整的字符串解析为单词

c - 将 2 个字符串指针与参数为 void ** 的函数交换

c - 父子进程之间的管道问题