Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jmdcosta

Numeros demasiado grandes (Scanf)

Recommended Posts

Tenho uma dúvida.

 

Estou a fazer um programa e desejava trabalhar um numero long int mas este não pode ultrapassar o limite (-2147483647 e 2147483647).

 

Como verifico o numero entrado para dar erro se este for maior ou menor do que o limite dos numeros long int??? Pois o scanf automaticamente converte para outro valor o numero introduzido.

 

Desculpem se não me fiz entender.

 

Obrigado pela atenção

 

Cumprimentos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha uma gambiarra q você pode fazer [e ler esse numero como long long int.

ai você faz as comparacoes de tamanho com if's, e c o numero estiver ok joga numa variavel long int..

 

[e um jeito "porco" de fazer, + ....

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falando em long long int, por que sizeof() retorna o mesmo tamanho para long int e long long int?

 

int main()
{
	printf("sizeof(int) = %d\n", sizeof(int));
	printf("sizeof(long int) = %d\n", sizeof(long int));
	printf("sizeof(long long int) = %d\n", sizeof(long long int));
	
	return 0;
}

Saída:

sizeof(int) = 4

sizeof(long int) = 8

sizeof(long long int) = 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal.

 

Mas li algo sobre o errno e acho que vou usar algo do genero.

 

long long_var;

printf( "Numero máximo possivel... %d\n",LONG_MAX );

printf( "Numero minimo possivel... %d\n",LONG_MIN );

long_var = strtol( sInput, NULL, 0);

if (ERANGE == errno)

printf( "Numero fora de limites para um Long Integer...\n" );

 

Acho que vai funcionar. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.