babel47 Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Διαβαζω καποιες εισοδους σε ενα προγραμμα μου με cin >>. Το προβλημα μου ειναι οτι εαν δωσω κατι εξω απο τα ορια αυτου που διαβαζω το προγραμμα εχει μη αναμενομενο αποτελεσμα και κλεινει. Πως θα μπορουσα να αντιμετωπισω το προβλημα αυτο?
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 Διαβαζω καποιες εισοδους σε ενα προγραμμα μου με cin >>. Το προβλημα μου ειναι οτι εαν δωσω κατι εξω απο τα ορια αυτου που διαβαζω το προγραμμα εχει μη αναμενομενο αποτελεσμα και κλεινει. Πως θα μπορουσα να αντιμετωπισω το προβλημα αυτο?
georgemarios Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 χμ, ενα παραδειγμα if you please mylord?
georgemarios Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 χμ, ενα παραδειγμα if you please mylord?
Blondeamon Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Βάλε μια system("pause"); λίγο πρίν κλείσεις την main αν θέλεις να μένει ανοιχτό το παράθυρο σου.
Blondeamon Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Βάλε μια system("pause"); λίγο πρίν κλείσεις την main αν θέλεις να μένει ανοιχτό το παράθυρο σου.
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 πχ πες οτι εχω: int a,b,c; cout << "dose proto arithmo" << endl; cin >> a; cout << "dose deytero arithmo" << endl; cin >> b; ktl...... εχω βαλει system(pause); αλλα πες οτι εγω δινω στο a την τιμη 1111111113456356345634111111111 που ειναι εξω απο τα ορια του int. Τοτε το προγραμμα εχει μη αναμενομενα αποτελεσματα και τελειωνει χωρις να μου ζητησει τα υπολοιπα cin. Υποθετω οτι φταιει το cin και αναρωτιομουν αν υπαρχει καποια αλλη συναρτηση για να μην εχω αυτο το προβλημα. Πχ οταν δεν μπορω να αποθηκευσω παραπανω στην a να το κοβει και να μην περναει στο επομενο cin (υποθετω οτι κατι τετοιο γινεται)... καμια ιδεΑ?
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 πχ πες οτι εχω: int a,b,c; cout << "dose proto arithmo" << endl; cin >> a; cout << "dose deytero arithmo" << endl; cin >> b; ktl...... εχω βαλει system(pause); αλλα πες οτι εγω δινω στο a την τιμη 1111111113456356345634111111111 που ειναι εξω απο τα ορια του int. Τοτε το προγραμμα εχει μη αναμενομενα αποτελεσματα και τελειωνει χωρις να μου ζητησει τα υπολοιπα cin. Υποθετω οτι φταιει το cin και αναρωτιομουν αν υπαρχει καποια αλλη συναρτηση για να μην εχω αυτο το προβλημα. Πχ οταν δεν μπορω να αποθηκευσω παραπανω στην a να το κοβει και να μην περναει στο επομενο cin (υποθετω οτι κατι τετοιο γινεται)... καμια ιδεΑ?
GrandGamer Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int.
GrandGamer Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int.
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int. Για να σου δωσω να καταλαβεις περιπου το προγραμμα μου, ζηταω καποια στοιχεια πχ στο a ζηταω κωδικο ο οποιος θελω να ειναι μεχρι πχ 8 ψηφια. Δεν θα ειναι και τοσο σωστο να βαλω long int. Επισης επειδη το προγραμμα τρεχει ουσιαστικα συνεχεια σαν background program δεν θελω καθε φορα που καποιος θελει να παιξει και να βαλει εναν τεραστιο αριθμο αυτο να κρασαρει και να τερματιζει (το long ποσα ψηφια δεχεται νομιζω το ιντ μεχρι 9-10, αλλα και παλι δεν ειναι αυτη η λυση). Θελω ουσιαστικα σε αυτες τις περιπτωσεις το προγραμμα μου να μην κρασαρει αλλα να ειδοποιησω τον χρηστη πχ με καποιο τροπο οτι δεν ειναι σωστο κτλ.. Ποιος θα ειναι ο καλυτερος τροπος?
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int. Για να σου δωσω να καταλαβεις περιπου το προγραμμα μου, ζηταω καποια στοιχεια πχ στο a ζηταω κωδικο ο οποιος θελω να ειναι μεχρι πχ 8 ψηφια. Δεν θα ειναι και τοσο σωστο να βαλω long int. Επισης επειδη το προγραμμα τρεχει ουσιαστικα συνεχεια σαν background program δεν θελω καθε φορα που καποιος θελει να παιξει και να βαλει εναν τεραστιο αριθμο αυτο να κρασαρει και να τερματιζει (το long ποσα ψηφια δεχεται νομιζω το ιντ μεχρι 9-10, αλλα και παλι δεν ειναι αυτη η λυση). Θελω ουσιαστικα σε αυτες τις περιπτωσεις το προγραμμα μου να μην κρασαρει αλλα να ειδοποιησω τον χρηστη πχ με καποιο τροπο οτι δεν ειναι σωστο κτλ.. Ποιος θα ειναι ο καλυτερος τροπος?
aGka8l Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους πχ cin>>a; if (a<max) { cout<<"--------------------------------------------\n"; } else { cout<<"--------------------------\n"; }
aGka8l Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους πχ cin>>a; if (a<max) { cout<<"--------------------------------------------\n"; } else { cout<<"--------------------------\n"; }
GrandGamer Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Θα μπορούσες να κάνεις ένα array από char το οποίο θα έχει 8 θέσεις και έτσι θα έχεις συγκεκριμένα μέχρι και 8 ψηφία κωδικό.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.