Je ne comprends pas exactement comment utiliser une fonction qui renvoie un booléen. Je sais ce que c'est, mais je n'arrive pas à comprendre comment le faire fonctionner dans mon programme. J'essaie de dire que si ma variable "selection" est une lettre entre "A" et "I" alors elle est valide et peut continuer à la fonction suivante qui s'appelle calcExchangeAmt(amtExchanged, selection)
. Si c'est faux, je veux qu'il demande à l'utilisateur s'il veut répéter le programme et s'il accepte de le répéter. Je veux effacer l'écran et redémarrer la fonction principale. Comment puis-je faire fonctionner mon programme comme prévu?Problème avec les fonctions retournant bool!
Ceci est ma fonction bool:
bool isSelectionValid(char selection, char yesNo, double amtExchanged)
{
bool validData;
validData = true;
if ((selection >= 'a' && selection <= 'i') ||
(selection >= 'A' && selection <= 'I'))
{
validData = calcExchangeAmt (amtExchanged, selection);
}
else(validData == false);
{
cout << "Do you wish to continue? (Y for Yes/N for No)";
cin >> yesNo;
}
do
{
main();
}
while ((yesNo =='y')||(yesNo == 'Y'));
{
system("cls");
}
return 0;
}
Je reçois cet avertissement:
avertissement C4800: 'double': forcer la valeur à bool 'vrai' ou 'faux' (avertissement de performance)
Etes-vous sûr que c'est le code exact qui génère l'erreur? Il devrait se plaindre de convertir 'int', pas 'double'. Aussi, qu'entendez-vous par 'else (validData == false);'? Si vous essayez de définir la valeur de validData sur true, cela ne le fera pas; vous comparez simplement 'validData' à' true' et ne faites rien avec le résultat. Il y a plus de problèmes avec ce code que je ne peux le faire. Peut-être devriez-vous prendre du recul et décrire ce que vous essayez d'accomplir. –
en plus de marcelo: fournir le code source de calcExchangeAmt, le problème est là, très probablement son double retour que vous forcez à boolé – Anycorn