Ir para o conteúdo
x3minater

Condições de ASCII

Mensagens Recomendadas

x3minater    0
x3minater

Boas

Eu não tenho a certeza absoluta que isto é possivel, mas axo que ja vi fazerem a verificação dum valor introduzido pelos valores da tabela ASCII, so que n me lembro como é  :P...

Tentei fazer isso neste pedaço de código:

int quant_p;

printf("Introduza a quant: ");
scanf("%d", &quant_p);

	if(quant_p<48 && quant_p>57){
		printf("ERRO, quantidade nao e um numero! Press Enter!\n");
		getchar();

Mas só que não resulta... como é que posso fazer?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Ao usares o %d já estás a ler um número. Para veres se foi correctamente introduzido, verifica o valor de retorno do scanf (que deverá ser 1, a menos que não seja introduzido um número).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x3minater    0
x3minater

Ao usares o %d já estás a ler um número. Para veres se foi correctamente introduzido, verifica o valor de retorno do scanf (que deverá ser 1, a menos que não seja introduzido um número).

Hmmm, não sabia isso do scanf... mas n era bem isso que queria saber  :dontgetit:...

Por exemplo se tivesse o codigo +/- assim:

char quant_p[100];

printf("Introduza a quant: ");
fgets(quant_p, 100, stdin);

        if(quant_p[strlen(quant_p)-1]=='\n')
quant_p[strlen(quant_p)-1]='\0';

	if(quant_p<48 && quant_p>57){
		printf("ERRO, quantidade nao e um numero! Press Enter!\n");
		getchar();

(não testei)

Podia fazer a condição para verificar se era numero?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

A tua condição funciona para caracteres, mas quant_p é uma string.

Mas o que tu queres não é ver se o valor introduzido é um número?

Nesse caso, o que eu te disse funciona. Se não for introduzido um número, será devolvido o valor 0.

Ficaria:

int quant_p;
int res=scanf("%d",&quant_p);
if(res!=1) printf("Erro...");

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
x3minater    0
x3minater

Mas o que tu queres não é ver se o valor introduzido é um número?

Eu queria era saber se a condição

if(quant_p<48 && quant_p>57){
		printf("ERRO, quantidade nao e um numero! Press Enter!\n");
		getchar();

funcionava!  :biggrin:

Quer para inteiros, quer para strings...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade