2
respostas

Validar entrada do usuario

Boa noite, como eu faria para validar o valor digitado pelo usuário ? Por exemplo, no meu jogo de adivinhação todas as informações de entrada fornecidas pelo usuário devem ser numéricas, caso eu digite alguma letra o programa quebra e é finalizado. Como eu posso verificar se a entrada que o usuário informou é realmente um valor numérico ?

Obrigado

2 respostas

Olá Robson,

em C isso não é tão trivial.

Uma opção é ler uma string e validar o conteúdo dela antes de usar atoi para transformá-la num inteiro. Basicamente você deve verificar que cada caractere dela é um número.

Não se preocupe se ainda não souber o que é uma string ou exatamente como fazer essa validação - isso ficará claro mais adiante.

Abraços, Victor.

Uma solução é ler o que o usuário digitou em char e, usando a função isdigit(char) da biblioteca <ctype.h> verifica se a variável char é um dígito, e a partir dai pode converter para int e continuar suas operações.

Um pseudo-código da função seria :

...
if( isdigit(a) )
    int entrada = (int)a;
else
    // Requisita o digito novamente.
...

Ref. :isdigit() // Char para Int.