Je suis un débutant (j'ai commencé à apprendre le codage il y a 2 semaines) et j'apprécierais vraiment de vous aider à expliquer pourquoi mon code ne fonctionne pas. J'ai écrit un code simple pour calculer la probabilité. Ce n'est pas une partie vraiment importante. Le code nécessite une entrée de l'utilisateur afin de le rendre un peu infaillible, j'ai écrit deux instructions if pour différents types de mauvaises entrées (mauvais type de données, nombre trop élevé, nombre trop bas) pour lancer un message d'erreur et tuer le programme. Et si l'entrée est correcte (signifie qu'aucune des conditions des instructions if n'est vraie), elle doit appeler une fonction diceTwo (des). Cependant, si je saisis le numéro 8 - qui devrait être correct - pour une raison que je ne comprends pas - il déclenche le numéro trop haut/bas if, donc quel que soit le numéro entré, la fonction n'est jamais appelée.C++ Si la déclaration se comporte mal
cin >> des;
if (cin.fail())
{
cin.clear();
cin.ignore(100, '\n');
cout << "Invalid input! Use only whole positive numbers!" << endl;
cout << "Try again." << endl;
return -1;
}
if (des> 12 || des< 1);
{
cout << "Invalid input!" << endl;
cout << "Remember the only possible values are from 2 to 12!" << endl;
cout << "Try again." << endl;
return -1;
}
diceTwo(des);
cout << "The probability of this roll is " << x << "%" << endl;
C'est la partie qui pose problème. J'ai déjà essayé de diviser l'instruction if problématique en deux (une pour < 1, une pour> 12), ou en ajoutant une nouvelle instruction if pour des> 1 & & des < 12 pour appeler la fonction, rien de tout cela n'a fonctionné. J'ai travaillé avec des instructions if pour assurer l'infaillibilité de l'entrée de l'utilisateur quelques fois auparavant, toujours bien travaillé, donc je ne peux vraiment pas trouver ce qui ne va pas cette fois. Quelqu'un pourrait me dire comment le réparer s'il vous plaît?
Vous savez que '' n'' n'est pas la même chose que ''\ n'', n'est-ce pas? –
Nous avons besoin de suffisamment de code pour reproduire le problème. Nous ne pouvons même pas dire si 'des' est un' int', un 'float', un' std :: string', ou quoi. –
@SamVarshavchik Oui, bien sûr, désolé, mon mauvais, je supprimais certaines parties de phrases de cout (y compris \ n) pour simplifier le code que je mettais ici, et probablement supprimé le '\' par erreur. Dans mon code d'origine c'est '\ n'. Je vais l'éditer ici. – InsaneNewbie