Validar Números digitados pelo usuário

1. Validar Números digitados pelo usuário

Henrique Ramos Ricci
Shimul

(usa Ubuntu)

Enviado em 15/11/2017 - 13:08h

Estou fazendo um algorítimo para resolução de problemas envolvendo geometria analítica e preciso validar para que caso digite uma letra ao invés de um numero, ele não permita tal execução. O problema é que todos os métodos que eu utilizo, consigo impedir que ele digite letras, mas também impeço ele de digitar números negativos... Alguém sabe como resolver? Estou utilizando linguagem C


  


2. Re: Validar Números digitados pelo usuário

Paulo
paulo1205

(usa Ubuntu)

Enviado em 16/11/2017 - 00:28h

Leia o dado como string, e depois tente extrair o dado desejado da linha lida, certificando-se de que o dado é a única coisa presente na linha lida.

Abaixo segue um exemplo em C. Ele consome uma linha de dados, e exige que a linha contenha apenas um valor inteiro, rejeitando inclusive espaços antes e depois do número.

bool read_int(int *p_val){
  char buffer[1024];
  int a, b, c, linelen;
  if(!fgets(buffer, sizeof buffer, stdin))
    return false;
  linelen=strlen(buffer);
  if(buffer[linelen+1]=='\n')
    buffer[--linelen]='\0';
  a=b=c=0;
  return
    sscanf(buffer, " %n%d%n %n", &a, p_val, &b, &c)==1 &&
    a==0 && b>0 && c==b && c==linelen
  ;
} 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts