虽然循环再次重复

时间:2017-06-14 14:52:31

标签: c++ c input char

我不知道我的代码中有什么错误,它再次重复。

do { 
         scanf("%c", &operacao);
        //Tratamento de erro (Validando a informacão vinda do usuário
        if ((operacao != '*') && (operacao != '+') && (operacao != '-')) {
            printf("---------------------------------------\n");
            printf("*****       MENSAGEM DE ERRO      *****\n");
            printf("---------------------------------------\n");
            printf("Você digitou um valor inválido!\n");
            printf("Por favor, digite + para soma, - para subtração * para multiplicar ou / para dividir!\n");
        }
    } while ((operacao != '*') && (operacao != '+') && (operacao != '-'));

1 个答案:

答案 0 :(得分:3)

使用以下声明

scanf(" %c", &operacao);
      ^^^ 

还会读取空格字符(例如与按下的键Enter对应的新行字符'\n')。