• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

x3minater

Condições de ASCII

6 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando lhe passas string, estás apenas a comparar apontadores, o que não deve ter muita utilidade...

0

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