jmdcosta 0 Denunciar post Postado Dezembro 8, 2008 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
jmdcosta 0 Denunciar post Postado Dezembro 9, 2008 Alguem me pode ajudar?? Não consigo resolver esta situação. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 9, 2008 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
Beraldo 864 Denunciar post Postado Dezembro 9, 2008 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
quitZAUMMM 18 Denunciar post Postado Dezembro 9, 2008 bom... eu soh dei essa pog pra ele pq li isso aki: http://www.babooforum.com.br/forum/Ajuda-a...-C-t631271.html Compartilhar este post Link para o post Compartilhar em outros sites
jmdcosta 0 Denunciar post Postado Dezembro 9, 2008 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