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

F0rEign 57 Messages postés vendredi 22 mars 2013Date d'inscription 6 septembre 2016 Dernière intervention - 17 mars 2016 à 22:55 - Dernière réponse : F0rEign 57 Messages postés vendredi 22 mars 2013Date d'inscription 6 septembre 2016 Dernière intervention
- 18 mars 2016 à 11:38
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

Répondre au sujet
NHenry 14003 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 17 mars 2016 à 23:09
0
Utile
int choiceYesNo();
cin >> choiceYesNo;

Je trouve cela étrange ...
Commenter la réponse de NHenry
cptpingu 3768 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 18 mars 2016 à 00:31
0
Utile
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
F0rEign 57 Messages postés vendredi 22 mars 2013Date d'inscription 6 septembre 2016 Dernière intervention - Modifié par F0rEign le 18/03/2016 à 11:39
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.