Salut à tous,
Voilà, je débute le C++, et je me suis lancé dans un logiciel assez basique, une petite calculette en ligne de commande.
Mais, je rencontre un petit problème.
Voici mon code :
Code :
- #include <iostream>
- using namespace std;
- char GetCalcType(void); // Declaring GetCalcType
- int main(int argc, char *argv[])
- {
- cout << "Calculette basique en C++." << endl << endl; //Hello world :)
- cout << "Que voulez vous faire ?" << endl <<
- " Une addition : +" << endl <<
- " Une soustraction : -" << endl <<
- " Une multiplication : *" << endl <<
- " Une Division : /";
- char iOperator = GetCalcType();
- cout << "Debug : je récupère ça : " << iOperator << endl;
- return 0;
- }
- char GetCalcType(void) // Cette fonction récupère et retourne l'opérateur pour le calcul.
- {
- char cReturn;
- while (1) // Boucle infinie
- {
- cout << endl << "Entrez une valeur : ";
- cin >> cReturn;
- if ((cReturn == '+') || (cReturn == '-') || (cReturn = '/') || (cReturn ='*'))
- return cReturn;
- if ((cReturn = 'q') || (cReturn = 27))
- return 'q';
- }
- }
|
Voilà, ce problème n'est pas terminé car j'ai un bug.
Dans GetCalcType(), j'ai une boucle infinie, qui normalement doit s'executer tant qu'elle n'est pas quittée.
Or, quand je lance le programme, et si je met une autre valeur que "+" ou "-", il me retourne "/" (et la boucle est quittée)
Donc ma question : où est le bug ? car moi je ne le vois pas. (le C++ ne s'aurait t'il pas gérer plus d'un seul ou ?)
Je vous remercie.