Message d'erreur sur mon programme C++ [Résolu]

Messages postés
57
Date d'inscription
vendredi 22 mars 2013
Statut
Membre
Dernière intervention
6 septembre 2016
-
Bonjour, Je vais faire vite car j'ai souvent beaucoup de problème en C++.
Cette fois-ci je suis confronté à un problème que je n'ai jamais eu auparavant, sur le code ci-dessous, permettant de créer des sujets, comme sur ce forum j'ai l'erreur

"ambiguous overload for 'operator>>' in 'std::cin >> choiceYesNo'

PS : Vu qu'il y aura certainement une personne s'appellant "cpuinglu" ou un truc du genre (désolé si j'ai mal écris) qui va surement venir sur ce post, je préfère prévenir que les std namespace j'ai pas eu le temps de les enlever...

Le code :

#include <iostream>
#include <windows.h>

using namespace std;

double versionProg(0.5);

string softwareName(" ForCom");

void createCategory()
{
int choiceYesNo();
string createCategoryString();

cout << " vous avez decide de creer une nouvelle categorie " << endl;
cout << " Entrez le nom de la nouvelle categorie\n " << endl;

cin >> createCategoryString;

cout << " Vous avez creee la categorie " << createCategoryString << " C'est ca ? " << endl;
cout << " 1.Oui\n 2.Non " << endl;

cin >> choiceYesNo;

if (choiceYesNo == 1)
{

cout << " Vous avez confirme la creation de votre nouvelle categorie appele " << createCategoryString << endl;

}

else if (choiceYesNo == 2)
{

cout << " Retour a la creation d'une categorie " << endl;
Sleep(1500);
createCategory();
}

}



void createSubject()
{
string choiceSubject();
int choiceAlreadySubject();
int choiceCategory();
cout << " Vous avez decide de creer un sujet\n Vous voulez :\n 1.Creer une categorie\n 2.Voir les categories existantes" << endl;
cin >> choiceCategory;
if (choiceCategory == 1)
{

createCategory();

}




}


void options()
{
int choiceOptions;
cout << " Vous etes dans les options\n Ce programme est actuellement en version " << versionProg << endl;
cout << " Ce programme a ete creee par F0rEign\n \n ----- Pour nous contacter : nicolas.buchot@hotmail.fr ----- \n " << endl;
cout << " 1.Retour Menu\n 2.Quitter" << endl;
cin >> choiceOptions;
if (choiceOptions == 1)
{

}
else if (choiceOptions == 2)
{
cout << " Vous quittez le programme\n A bientot ! " << endl;
Sleep(1500);
}

}


void menu()
{
int choiceMenu;
system ("title Com'SoftWare ");
system ("color 1e");
cout << " Bienvenue sur la version " << versionProg << " de " << softwareName << endl;
cout << " Choisissez une option parmis ceux-la.\n " << endl;
cout << " 1.Creer un sujet\n 2.Options\n 3.Quitter " << endl;
cin >> choiceMenu;
switch (choiceMenu)
{
case 1:

createSubject(); // Creer un sujet

break;

case 2:

options(); // Options

break;


case 3:

cout << " Vous quittez le programme\n A bientot ! " << endl;
Sleep(1500);

break;

}


}



int main()
{

menu();

return 0;
}






Merci d'avance...



--- Anonymously ---
Afficher la suite 

3 réponses

Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
0
Merci
int choiceYesNo();
cin >> choiceYesNo;

Je trouve cela étrange ...
Commenter la réponse de NHenry
Messages postés
3821
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 août 2019
85
0
Merci
Bonjour.

Merci NHenry, ton intuition est la bonne. C'est exactement le souci.

"int a;" => déclaration d'une variable a.
"int a();" => déclaration d'une fonction a qui retourne un entier.

Si tu veux initialiser une variable, écris: "int a = 0;".

Pour les constantes, indique qu'elles le sont.
double versionProg(0.5); => const double versionProg = 0.5;

une personne s'appellant "cpuinglu" ou un truc du genre

Tout de même, ça prend 2 min, de regarder l'historique de tes posts et retrouver mon pseudo...

les std namespace j'ai pas eu le temps de les enlever...

Tu ne devrais pas avoir besoin de les retirer car tu ne devrais pas en avoir dès le début...

Je ne ferais pas une critique détaillée de ton code. Certaines choses vont mieux (switch, fonctions), d'autres n'ont pas évolués (using, std::cout enchaînés, protection de std::cin). Pour plus de détails relire les sujets précédents.
Commenter la réponse de cptpingu
Messages postés
57
Date d'inscription
vendredi 22 mars 2013
Statut
Membre
Dernière intervention
6 septembre 2016
0
Merci
Ok merci de ta réponse comme d'habitude, ça faisait longtemps que j'ai pas coder et ducoup j'ai oublier ce détail. et désolé si j'ai pu t'offenser ou quoi avec ton pseudo enfin bref merci A+
Commenter la réponse de F0rEign