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