Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να απορρίψει το Data που υπερχειλίζουν τα Διαστάσεις

προγράμματα ηλεκτρονικών υπολογιστών που χρησιμοποιούνται συχνά για να εκτελέσει κάποια αξιόλογη εργασία για τα στοιχεία που υποβάλλονται σε αυτό ως είσοδο . Για παράδειγμα, ένα πρόγραμμα μπορεί να γραφεί για την εκτέλεση υπολογισμών περιοχής στο ύψος και το πλάτος διαστάσεις. Δεδομένου ότι οποιοσδήποτε αριθμός μπορεί να υποβληθεί στο πρόγραμμα , υπάρχει η πιθανότητα ότι μια είσοδος είναι πολύ μεγάλο για να υποβληθούν σε επεξεργασία . Αυτό οδηγεί σε μια υπερχείλιση , η οποία προκαλεί καταστροφή δεδομένων . Μπορείτε να χρησιμοποιήσετε μια γλώσσα προγραμματισμού όπως η C + + να απορρίψει τα στοιχεία που θα μπορούσε να προκαλέσει μια κατάσταση υπερχείλισης . Τα πράγματα που θα χρειαστείτε
C + + ολοκληρωμένο περιβάλλον ανάπτυξης ( IDE ) , όπως Eclipse CDT
C + + Compiler , μια τέτοια GCC
Η Εμφάνιση Περισσότερες οδηγίες
Η

1 Τοποθετήστε το C + + IDE κάνοντας κλικ στο εικονίδιο του προγράμματος του . Όταν ανοίγει , επιλέξτε " File /New /Project" και επιλέξτε " C + + Project" για να δημιουργήσετε ένα νέο C + + project . Ένα αρχείο πηγαίου κώδικα εμφανίζεται στο τμήμα επεξεργασίας κειμένου του IDE . Αυτό το αρχείο περιέχει μια αυτόματα "κύριος ", η οποία χρησιμεύει ως σημείο εισόδου για το πρόγραμμά σας . Θα τοποθετήσετε όλα κωδικός σας μέσα στις αγκύλες που εμφανίζονται αμέσως κάτω από την « κύρια » λειτουργία. 2

Γράψτε τις ακόλουθες δηλώσεις μεταβλητών μεταξύ των αγκυλών του "κύριος " λειτουργία. Οι δύο πρώτες μεταβλητές χρησιμοποιούνται για να συλλάβει είσοδο από το πληκτρολόγιο . " Μήκος" Οι μεταβλητές » και« πλάτος » διαστάσεις λαβή σε ένα τύπο δεδομένων που ονομάζεται " μικρή ", το οποίο μπορεί μόνο την αποθήκευση τιμών έως 32.767 πριν ξεχειλίζει . Η τελική μεταβλητή χρησιμοποιείται για την αποθήκευση της περιοχής των διαστάσεων , και είναι τύπου "μακρύ ". Αυτό το είδος των δεδομένων που μπορεί να αποθηκεύσει τις τιμές μέχρι 2,147,483,647 , η οποία είναι δύο φορές η μέγιστη τιμή είναι δυνατόν , όταν πολλαπλασιάζοντας δύο « σορτς » μαζί

char * inputString ? .

Char buffer [ 256 ] ?

μικρού μήκους = 0 ?

σύντομο width = 5 ?

μεγάλη περιοχή = 0 ?
εικόνων 3

Γράψτε μια δήλωση που εκτυπώνει τις κατευθύνσεις για στο χρήστη να εισάγει τη διάσταση του μήκους , όπως αυτό :

printf ( " εισάγετε τη διάσταση μήκους : \\ n" ) ?
Η 4

Γράψτε μια δήλωση που συλλαμβάνει την είσοδο του χρήστη από το πληκτρολογίου , χρησιμοποιώντας τις μεταβλητές " inputString » και « ρυθμιστικό », όπως αυτό :

inputString = fgets ( buffer , 256 , stdin ) ?
5

Γράψτε ένα "αν" δήλωση ότι οι δοκιμές για να δούμε αν η τιμή η είσοδος του χρήστη είναι μεγαλύτερη από ό, τι ένα σύντομο είναι σε θέση να χειρίζονται . Η μέγιστη τιμή του ενός "μικρή" είναι αποθηκευμένο στη σταθερά " SHRT_MAX . " Ελέγξτε για να δείτε αν η αξία τους είναι θετική , δεδομένου ότι η αξία υπερχυλισθείσας μπορεί να γίνει αρνητική και οι διαστάσεις είναι συνήθως μόνο θετικές τιμές . Η ακόλουθη "αν" οι έλεγχοι δήλωση για υπερχείλιση και εκτυπώνει ένα μήνυμα, αν συμβεί υπερχείλιση:

αν ( atoi ( inputString ) > SHRT_MAX && atoi ( inputString ) > 0 )

{ printf ( "Δεδομένα απορριφθεί για ξεχειλίζει διάσταση \\ n" ) ? }
Η 6

Γράψτε ένα « άλλο » δήλωση που τρέχει μόνο αν η προηγούμενη " if", αξιολογεί ως ψευδείς . Αυτό συμβαίνει όταν η τιμή εισόδου είναι μέσα στο κατάλληλο εύρος τιμών για " σύντομη " τύπους δεδομένων .

Άλλο

{ }
Η 7

Γράψτε δύο δηλώσεις ότι εκδοχείς η « inputString " στο "μήκος " μεταβλητή και πολλαπλασιάζει με το πλάτος μεταβλητή. Τοποθετήστε τις δύο ακόλουθες καταστάσεις ανάμεσα στις αγκύλες που ακολουθούν αμέσως το " άλλο " δήλωση:

μήκος = atoi ( inputString ) ?

Περιοχή = μήκος * πλάτος?

8

Γράψτε μια τελική δήλωση που εκτυπώνει από την περιοχή . Τοποθετήστε αυτό κάτω από τις δηλώσεις γραμμένο στο τελευταίο βήμα και ανάμεσα στις αγκύλες του "αλλιώς" δήλωση:

printf ( " Περιοχή : % d " , περιοχή ) ?
Η 9

Πιέστε το πλήκτρο "Play" πράσινο για να εκτελέσει το πρόγραμμα . Μια γραμμή εντολών εμφανίζεται με μια γραμμή κειμένου που σας ζητά να εισάγετε έναν αριθμό . Πληκτρολογήστε το 32.768 , το οποίο είναι ένα από τα υψηλότερα " SHRT_MAX ", και το κείμενο που ακολουθεί είναι η έξοδος :

Data απορριφθεί για ξεχειλίζει διάσταση
Η
εικόνων

Συναφής σύστασή

Πώς να Αντίστροφη στοιχεία ενός πίνακα σε C

C είναι μια γλώσσα προγραμματισμού για τη συγγραφή προγραμμάτων ηλεκτρονικών υπολογιστών από οποιοδήποτε επίπεδο της πολυπλοκότητας . Ένας πίνακας είναι η δομή των δεδομένων που δηλώνεται σε C με αγκύλες που κατέχει ένα σύνολο μεταβλητών σε μια ορισμένη σειρά . Για παράδειγμα, [ 5 , 8 , 12 ] είναι μια συστοιχία C που αποτελείται από τρία στοιχεία . Η αντίστροφη διάταξη περιλαμβάνει τα ίδια στοιχεία , αλλά στο πίσω τάξης, όπως [ 12 , 8 , 5 ] . Array αντιστροφή απαιτείται συχνά σε προγράμματα C .

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα