Interdiction de caractère [C++] - C++ - Programmation
Marsh Posté le 30-06-2015 à 18:49:28
>Petite précision également mon programme ne doit contenir aucune fonction
Un prof qui demande ça en exercice ferait mieux d’arrêter d'enseigner la programmation.
A+,
Marsh Posté le 30-06-2015 à 20:02:25
Gilou pour te répondre a ce moment là de l'année on avait pas encore vu les fonctions et le projet que je te présente aujourd'hui et aux autres utilisateur justement c'était avant ce fameux chapitre sur les fonctions
Marsh Posté le 30-06-2015 à 21:24:07
Axel98 a écrit : Gilou pour te répondre a ce moment là de l'année on avait pas encore vu les fonctions et le projet que je te présente aujourd'hui et aux autres utilisateur justement c'était avant ce fameux chapitre sur les fonctions |
3 lectures et je ne comprends toujours pas ce que tu cherches à dire
Marsh Posté le 30-06-2015 à 21:50:30
En gros notre professeur nous donne un certain nombre d'heure de cours ensuite par exemple après 10h il nous donne un projet a faire juste parès avoir fait ce projet on continue le cours
Et ce projet ne concernait pas les fonctions car on les as vu après le projet
Marsh Posté le 30-06-2015 à 22:48:34
Bon, sinon, j'ai l'impression que tu vides pas cin de ce qui traine dedans après usage, et ça se manifeste en cas de réponse fausse (si on tape Titi au lieu de O ou N on boucle 4 fois sur le message d'erreur).
faire par exemple:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Sinon, il semble assez bien tourner ce programme, tant que les inputs sont justes.
Pour vérifier qu'on t'a bien donné une valeur numérique:
std::cin >> ajout1;
while(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Mauvaise saisie. Entrez un nombre. " << std::endl;
std::cin >> ajout1;
}
ici, ajout1 sera un nombre
et on doit encore nettoyer cin
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
La ligne 29
cout << "Vous avez selectionner " << nomjeu;
alors qu'on n'a pas encore saisi nomjeu, hem...
Pour le début de ton code, ça donnerait:
Code :
|
Enfin une remarque plus générale:
cout << "Entrer un pseudo pour le joueur 1" << endl;
cin >> pseudo1;
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Pourquoi limiter pseudo 1, 2 ou 3 ou le nom du jeu à un mot sans blancs?
cout << "Entrer un pseudo pour le joueur 1" << endl;
getline(cin, pseudo1);
Me semble bien plus souple. Et comme on lit toute la ligne, inutile de faire de cleanup.
A+,
Marsh Posté le 30-06-2015 à 15:34:14
Bonjour a tous
Voici mon code :
Description :
Ce programme est destiné a gérer des scores pour n'importe quel jeu.
Mais comme vous le voyez dans le programme et dans mon code, les caractères pour moi sont un véritable problème car peut importe l'entrée du caractère je réussi a faire bugger mon programme ( nombre astronomique, programme qui tourne en boucle,...) .
Et le but pour moi est justement de vérifier ce que l'utilisateur a entré et si il y a un ou plusieurs caractères, afficher une erreur et lui redemander la variable pour qu'elle soit correct.
Je vous remercie d'avance de m'aider dans mon exploration du C++ ^^
Et vous souhaite une bonne journée
PS :
-Si vous avez d'autres erreurs a me signaler , elles sont les bienvenues et je vous en remercie d'avance
-Je m'excuse également pour les divers fautes d'orthographe que j'ai pu commettre
-On m'a déjà conseiller ce site là : http://cpp.developpez.com/faq/cpp/ [...] s-avec-cin
Mais il y a beaucoup de commande que je n'ai pas vu en cours et que je ne comprend pas via ce site :$
-Petite précision également mon programme ne doit contenir aucune fonction
Message édité par Axel98 le 30-06-2015 à 18:01:01