首页 > 解决方案 > scanf 第一次不读取,但第二次读取

问题描述

执行此代码时,在编写选项的那一刻,它不会读取 int,直到我再次编写它(如您在图片中看到的那样)。

一些背景:在您选择字母“r”后打开此代码。

在此处输入图像描述

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

void inicioUsuario() {
    int op = 0;

    printf("\n== BIENVENIDO ==\n");
    printf("\n");
    printf("1. Reservar plazas.\n");
    printf("2. Mapa.\n");
    printf("3. Reservas.\n");
    printf("\n");
    printf("INTRODUZCA LA OPCION: \n");
    fflush(stdout);
    scanf("%i", &op);
    do {

        switch (op) {
        case 1:
            printf("Numero 1");
            break;
        case 2:
            break;
        case 3:
            break;
        default:
            printf("Número inválido, inserte uno nuevo.");
            break;
        }

    } while (op >= 0 || op <= 3);

}

标签: c

解决方案


尝试在 switch 语句之后添加 scanf("%i", &op) 以便您可以在 while 循环中更新 op 的值


推荐阅读