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

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

Δημοσ.

Καλησπέρα! Φτιάχω ένα μενού για ένα πρόγραμμα του οποίου ο κώδικας πάει κάπως έτσι 

int ch;
	do
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Menu: "<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 1.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Add,delete or edit a movie,game or series."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 2.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Add,delete or edit a costumer."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 3.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Hire a movie,game or series."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 4.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Charge a movie,game or series."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 5.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Search for a movie,game or series."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 6.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Save video club's situation, or load a previous situation."<<endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
		cout<<" 7.";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cout<<"Exit."<<endl;
		cout<<"->";	
		cin>>ch;
		if (ch<1 || ch>7)
		{
			//cout<<"Wrong number.Please try again: "<<endl;
			system("cls");
			title();
		}
		fflush(stdin);
	}while (ch<1 || ch>7);

Ουσιαστικα όταν πατάει κάποιο νούμερο εκτός των ορίων που έχω θέσει απλά του ξαναεμφανίζει το μενού. Όταν πατάω 8 για παράδειγμα όλα λειτουργούν οκ.. Στους χαρακτήρες όμως συμπεριφέρεται σαν να κρατάει τον χαρακτήρα στον buffer και βγάζει πάρα πολυ γρήγορα το μενού σινεχόμενα.. Υπέθεσα αρχικά οτι με το fflush(stdin) θα το λύσω το πρόβλημα όμως αυτό παραμένει.. Καμιά ιδέα?? 

 

Δημοσ.

είναι μια δικιά μου συνάρτηση που την έχω γράψει πιο πανω δεν παίζει κανέναν ρόλο..

Δημοσ.

Δοκίμασε αντί

fflush(stdin);

να βάλεις

cin.sync();

Δεν τα πάω καλά με την C++, αλλά με λίγο που κοίταξα αυτό ίσως στο λύσει αν δίνει λάθος αριθμό.

 

Αν πάλι ο χρήστης δώσει κάποιο χαρακτήρα αντί Integer, τότε ίσως να πρέπει να χρησιμοποιήσεις string και getline() για να διαβάζεις την επιλογή του. (Δες κι εδώ...)

Δημοσ.

Ενταξει λύθηκε το πρόβλημα με getline(). Σε ευχαριστώ πολύ για τα links σου κατάλαβα απο κει το πρόβλημα μου :) 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...