Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    23

    [C] Evitare errore di overflow

    Come e' possibile evitare l'errore di overflow su di un numero acquisito tramite scanf? Cioe' mettere un controllo del tipo if (num > INT_MAX) non ha senso, visto che se num e' maggiore di INT_MAX assume dei valori casuali minori di INT_MAX; acquisire il numero come stringa controllare la lunghezza e poi trasformare il dato in integer non è proprio corretto visto che INT_MAX vale 2147483647, 10 cifre, e di numeri a 10 cifre ce ne sono molti altri maggiori di INT_MAX... in piu' in quest'ultimo caso si potrebbe anche andare in overflow di caratteri...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,322

    Moderazione

    Che linguaggio?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Se parli di C (lo deduco dalla scanf ...), puoi usare una variabile di tipo double e poi convertirla dopo i dovuti controlli ...

    Pero' se dai maggiori dettagli del problema forse ci sono altre soluzioni ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    23
    nel programma, che effettua una conversione di base, devo acquisire un numero in base 2, 8, 10, 16 (a scelta) e deve essere acquisito come stringa... a questo punto volevo aggiungere un controllo sul numero per stampare un messaggio di errore nel caso il numero inserito sia troppo grande... questo per evitare di effettuare una conversione di un numero casuale...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    23

    Re: Moderazione

    Originariamente inviato da alka
    Che linguaggio?
    Chiedo scusa, parlo di C...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Troppo grande rispetto a cosa?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    23
    Originariamente inviato da oregon
    Troppo grande rispetto a cosa?
    i dati vengono elaborati come unsigned per cui devono essere piu' piccoli di UINT_MAX, definito in limits.h...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Ecco ... dicevo di usare un double al posto di un unsigned int ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    23
    Originariamente inviato da oregon
    Ecco ... dicevo di usare un double al posto di un unsigned int ...
    scusa ma non ti seguo, anche il double ha un limite... spiegami come intendi eseguire il controllo plz

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Beh il double ha un limite ma non penso tu possa superarlo inserendo un dato da tastiera ...

    Fra l'altro, hai gia' scritto del codice?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.