Προς το περιεχόμενο

C++ (cin)


babel47

Προτεινόμενες αναρτήσεις

Δημοσ.

Διαβαζω καποιες εισοδους σε ενα προγραμμα μου με cin >>. Το προβλημα μου ειναι οτι εαν δωσω κατι εξω απο τα ορια αυτου που διαβαζω το προγραμμα εχει μη αναμενομενο αποτελεσμα και κλεινει. Πως θα μπορουσα να αντιμετωπισω το προβλημα αυτο?

  • Απαντ. 38
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Διαβαζω καποιες εισοδους σε ενα προγραμμα μου με cin >>. Το προβλημα μου ειναι οτι εαν δωσω κατι εξω απο τα ορια αυτου που διαβαζω το προγραμμα εχει μη αναμενομενο αποτελεσμα και κλεινει. Πως θα μπορουσα να αντιμετωπισω το προβλημα αυτο?

Δημοσ.

πχ πες οτι εχω:

 

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 (υποθετω οτι κατι τετοιο γινεται)...

 

καμια ιδεΑ?

Δημοσ.

πχ πες οτι εχω:

 

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 (υποθετω οτι κατι τετοιο γινεται)...

 

καμια ιδεΑ?

Δημοσ.
Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int.

 

Για να σου δωσω να καταλαβεις περιπου το προγραμμα μου, ζηταω καποια στοιχεια πχ στο a ζηταω κωδικο ο οποιος θελω να ειναι μεχρι πχ 8 ψηφια. Δεν θα ειναι και τοσο σωστο να βαλω long int. Επισης επειδη το προγραμμα τρεχει ουσιαστικα συνεχεια σαν background program δεν θελω καθε φορα που καποιος θελει να παιξει και να βαλει εναν τεραστιο αριθμο αυτο να κρασαρει και να τερματιζει (το long ποσα ψηφια δεχεται νομιζω το ιντ μεχρι 9-10, αλλα και παλι δεν ειναι αυτη η λυση).

 

Θελω ουσιαστικα σε αυτες τις περιπτωσεις το προγραμμα μου να μην κρασαρει αλλα να ειδοποιησω τον χρηστη πχ με καποιο τροπο οτι δεν ειναι σωστο κτλ..

 

Ποιος θα ειναι ο καλυτερος τροπος?

Δημοσ.
Δήλωσε τις μεταβλητές ως long, αυτό πιστεύω θα σου λύση το πρόβλημα, εκτός αν θες τις μεταβλητές αυστηρά int.

 

Για να σου δωσω να καταλαβεις περιπου το προγραμμα μου, ζηταω καποια στοιχεια πχ στο a ζηταω κωδικο ο οποιος θελω να ειναι μεχρι πχ 8 ψηφια. Δεν θα ειναι και τοσο σωστο να βαλω long int. Επισης επειδη το προγραμμα τρεχει ουσιαστικα συνεχεια σαν background program δεν θελω καθε φορα που καποιος θελει να παιξει και να βαλει εναν τεραστιο αριθμο αυτο να κρασαρει και να τερματιζει (το long ποσα ψηφια δεχεται νομιζω το ιντ μεχρι 9-10, αλλα και παλι δεν ειναι αυτη η λυση).

 

Θελω ουσιαστικα σε αυτες τις περιπτωσεις το προγραμμα μου να μην κρασαρει αλλα να ειδοποιησω τον χρηστη πχ με καποιο τροπο οτι δεν ειναι σωστο κτλ..

 

Ποιος θα ειναι ο καλυτερος τροπος?

Δημοσ.

αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους

 

πχ

 

cin>>a;

 

if (a<max)

{

cout<<"--------------------------------------------\n";

}

else

{

cout<<"--------------------------\n";

 

 

}

Δημοσ.

αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους

 

πχ

 

cin>>a;

 

if (a<max)

{

cout<<"--------------------------------------------\n";

}

else

{

cout<<"--------------------------\n";

 

 

}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...