GrandGamer Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Θα μπορούσες να κάνεις ένα array από char το οποίο θα έχει 8 θέσεις και έτσι θα έχεις συγκεκριμένα μέχρι και 8 ψηφία κωδικό.
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους πχ cin>>a; if (a<max) { cout<<"--------------------------------------------\n"; } else { cout<<"--------------------------\n"; } Το εχω κανει και αυτο δεν αλλαζει κατι ετσι το προβλημα παραμενει καθως ειναι προβλημα της cin
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθους πχ cin>>a; if (a<max) { cout<<"--------------------------------------------\n"; } else { cout<<"--------------------------\n"; } Το εχω κανει και αυτο δεν αλλαζει κατι ετσι το προβλημα παραμενει καθως ειναι προβλημα της cin
teo64x Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Όπως λέει ο GrandGamer, το να το πάρεις ως string και να το μετατρέψεις μετά σε ό,τι θες, είναι μια καλή λύση με την έννοια του ότι μπορεί να είναι πολύ κουραστικό, αλλά σου επιτρέπει να ελέγχεις εισόδους σε διάφορες μορφές.
teo64x Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Όπως λέει ο GrandGamer, το να το πάρεις ως string και να το μετατρέψεις μετά σε ό,τι θες, είναι μια καλή λύση με την έννοια του ότι μπορεί να είναι πολύ κουραστικό, αλλά σου επιτρέπει να ελέγχεις εισόδους σε διάφορες μορφές.
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 Θα μπορούσες να κάνεις ένα array από char το οποίο θα έχει 8 θέσεις και έτσι θα έχεις συγκεκριμένα μέχρι και 8 ψηφία κωδικό. οποτε προτεινεις να διαβαζω ενα ενα χαρακτηρα με την get πχ while(cin.get() != EOF || count <= 8) { ....... } αν ξερει κανεις αλλο τροπο ας τον πει και εγω αυτο εχω σκεφτει εως τωρα -----Προστέθηκε 29/1/2009 στις 02 : 38 : 06----- Εστω οτι το διαβαζω με την getline απο την κλαση string ομως getline(cin,str) μετα πως μετατρεπω το string τυπο σε int για παραδειγμα? Και μια αλλη ερωτηση αν θελω σε ένα cin να αποφυγω το κενο πως θα μπορουσα να το κανω με την cin.ignore()? Πχ πως θα μπορουσε να γινει στον παρακατω κωδικα? char* a; cout << "dose string\n"; cin >> a;
babel47 Δημοσ. 29 Ιανουαρίου 2009 Μέλος Δημοσ. 29 Ιανουαρίου 2009 Θα μπορούσες να κάνεις ένα array από char το οποίο θα έχει 8 θέσεις και έτσι θα έχεις συγκεκριμένα μέχρι και 8 ψηφία κωδικό. οποτε προτεινεις να διαβαζω ενα ενα χαρακτηρα με την get πχ while(cin.get() != EOF || count <= 8) { ....... } αν ξερει κανεις αλλο τροπο ας τον πει και εγω αυτο εχω σκεφτει εως τωρα -----Προστέθηκε 29/1/2009 στις 02 : 38 : 06----- Εστω οτι το διαβαζω με την getline απο την κλαση string ομως getline(cin,str) μετα πως μετατρεπω το string τυπο σε int για παραδειγμα? Και μια αλλη ερωτηση αν θελω σε ένα cin να αποφυγω το κενο πως θα μπορουσα να το κανω με την cin.ignore()? Πχ πως θα μπορουσε να γινει στον παρακατω κωδικα? char* a; cout << "dose string\n"; cin >> a;
Evgenios1 Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 char array-> int >int _tmain(int argc, _TCHAR* argv[]) { char a[]={'1','4','7'}; int i=(a[2]-48)*1 +(a[1]-48)*10 + (a[0]-48)*100; printf("%d",i); getchar(); return 0; } παντος δουλευει, επησεις μπορεις να κανεις και ελενχο εαν ειναι αρηθμος (if(a[x]<(48+10)&&a[x]>48) )
Evgenios1 Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 char array-> int >int _tmain(int argc, _TCHAR* argv[]) { char a[]={'1','4','7'}; int i=(a[2]-48)*1 +(a[1]-48)*10 + (a[0]-48)*100; printf("%d",i); getchar(); return 0; } παντος δουλευει, επησεις μπορεις να κανεις και ελενχο εαν ειναι αρηθμος (if(a[x]<(48+10)&&a[x]>48) )
elis88 Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Δεν ξέρω πως ακριβως γίνεται στη C++, αλλά με την χρήση exceptions... πιστευω ότι θα είσουν καλυμμένη .
elis88 Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Δεν ξέρω πως ακριβως γίνεται στη C++, αλλά με την χρήση exceptions... πιστευω ότι θα είσουν καλυμμένη .
georgemarios Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Aν αυτο που θες να διαβασεις ειναι κωδικος password, τοτε δεν εχει νοημα να τον μετατρεψεις σε int. Πρεπει να δουλεψεις μαζι του ως string.
georgemarios Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 Aν αυτο που θες να διαβασεις ειναι κωδικος password, τοτε δεν εχει νοημα να τον μετατρεψεις σε int. Πρεπει να δουλεψεις μαζι του ως string.
Pantelwolf Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθουςπχ cin>>a; ... Το πρόβλημα είναι στην αποθήκευση της τιμής στο a Μια λύση είναι αυτή που λέει ο teo64x Όπως λέει ο GrandGamer, το να το πάρεις ως string και να το μετατρέψεις μετά σε ό,τι θες, είναι μια καλή λύση με την έννοια του ότι μπορεί να είναι πολύ κουραστικό, αλλά σου επιτρέπει να ελέγχεις εισόδους σε διάφορες μορφές. Μια άλλη είναι να φτιάξεις errorhandler που να επιστρέφει σε περίπτωση τέτοιου σφάλματος την ροή στη σωστή θέση (και να διορθώνει το πρόβλημα) Προτείνω να δουλέψεις με στρινγκ.
Pantelwolf Δημοσ. 29 Ιανουαρίου 2009 Δημοσ. 29 Ιανουαρίου 2009 αν θες μεχρι 8 ψηφια οπως λες δηλωσε μια μεταβλητη max=99999999 και καθε cin που θα βαζεις καντου εναν ελεχο με τη μαξ , αν ειναι μικροτερος αστον να περναει αλιως βαλτο ν εμφανηζει μνμ λαθουςπχ cin>>a; ... Το πρόβλημα είναι στην αποθήκευση της τιμής στο a Μια λύση είναι αυτή που λέει ο teo64x Όπως λέει ο GrandGamer, το να το πάρεις ως string και να το μετατρέψεις μετά σε ό,τι θες, είναι μια καλή λύση με την έννοια του ότι μπορεί να είναι πολύ κουραστικό, αλλά σου επιτρέπει να ελέγχεις εισόδους σε διάφορες μορφές. Μια άλλη είναι να φτιάξεις errorhandler που να επιστρέφει σε περίπτωση τέτοιου σφάλματος την ροή στη σωστή θέση (και να διορθώνει το πρόβλημα) Προτείνω να δουλέψεις με στρινγκ.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.