Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Validação na entrada de dados.


PedroVictor

Pergunta

Olá pessoaL!

Sou novo aqui no fórum, então, por favor me perdoem se eu não soube postar direito... :D

Sou estudante de Eng. Elétrica (terceiro semestre ainda) mas estou me interessando demais pelas disciplinas de Programação.

Até agora só tive aulas de Lógica e Algoritmos Computacionais e Linguagem de Programação C.

Estou procurando me aprofundar cada vez mais nessa área mas sempre encontro dificuldades...

Minha dúvida é a seguinte:

Como faço para impedir ou não aceitar a entrada de dados (via teclado) que não corresponde com o tipo de variável que vai receber??

Ex.:

.
.
.
printf("Informe um numero:  ");
scanf("%d",&numero);
.
.

Se o usuário digitar um caracter, que não seja um número, o meu programa sempre dá erro, entra em Looping, sei lá.. rsrs

Já tentei diversar formas de resolver esse problema.. :wacko:

Obrigado desde já.

:D

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O certo seria você ler uma string, e depois validar e converter.

Use fgets para isso. Não se esqueça que fgets coloca '\n' no final da string.

.
.

char input[1024];
fgets(input, 1024, stdin); /* stdio.h */

if(input[strlen(input) - 1] == '\n')
    input[strlen(input) - 1] = 0; /* NULL */

if(!eNumero(input)) /* essa função você tem que criar */
    /* pede de novo o input */

int numero = atoi(input); /* stdlib.h */
.
.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0
Pode tambem fazer o seguinte: A função scanf retorna um inteiro 0 quando a entrada não corresponda com o que ele deva receber e, 1 caso a entrada esteja correta:

...
int tipo;
tipo = scanf("%d", &numero);
if(tipo == 0) printf("dado digitado errado);
       else printf("dado correto");
...

Abraço.

Nossa!! Que solução simples! Muito obrigado mesmo!! :D

o/

Obrigado aee também Durub :D..

Editado por PedroVictor
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...