Probleme avec mon programme c++
le-nul-du-script
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Greg375 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Greg375 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
bonjours,
j'ai créer un petit programme servant comme assistant Windows :
mais voila le problème , comme vous pouvez le voir dans les dernière ligne le programme est capable d'écrire dans un .txt les commande qu'il ne connais pas , jusque la tous va bien mais des qu'il quitte la boucle avec le goto et retourne au debuts le programme bug et retourne directement a la ligne cout << "je n'ai pas compris votre demande administrateur " << endl; il ne passe plus par la boucle while !!cela va faire des heures que je cherche mais je n'ai rien trouver .Pourtant les goto dans dans la boucle while vont très bien !!
Merci de votre aide
j'ai créer un petit programme servant comme assistant Windows :
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <sstream>
#include <stdlib.h>
#include <fstream>
using namespace std;
int main()
{
cout << "que puis-je execute pour vous Administrateur ?" << endl ;
debut:
std::string phrase="voici une phrase pour lancer la meteo";
getline (cin,phrase);
std::string mot;
std::istringstream iss(phrase);
while(iss>>mot)
{
if (mot == "google")
{
system("start chrome.lnk");
goto debut;
}
if (mot == "chrome")
{
system("start chrome.lnk");
goto debut;
}
if (mot == "meteo" )
{
system("start https://meteofrance.com/");
goto debut ;
}
if (mot == "quit")
{
system("color 0C");
cout << "salut administrateur" << endl ;
Sleep(2000);
exit(EXIT_SUCCESS);
}
if (mot == "veil")
{
system("color 0C");
cout << "l'ordinateur va se mettre en veil administrateur" << endl ;
system("shutdown -h");
goto debut;
}
if (mot == "facebook")
{
system("start https://www.facebook.com/");
goto debut;
}
if (mot == "putain")
{
cout << "veuillez adapter votre langage" << endl ;
goto debut;
}
if (mot == "musique")
{
system("start https://www.youtube.com/");
goto debut;
}
if (mot == "word")
{
system("start word.lnk");
goto debut;
}
if (mot == "ecrire")
{
system("start word.lnk");
goto debut;
}
if (mot == "virtualbox")
{
system("start virtualbox.lnk");
goto debut ;
}
if (mot == "audacity")
{
system("start audacity.lnk");
goto debut ;
}
if (mot == "merci")
{
cout << "ne me remercie pas" << endl ;
goto debut ;
}
if (mot == "heureux")
{
cout << "j'en suis moi meme ravis !" << endl ;
goto debut ;
}
if (mot == "verouillage")
{
system("color 0C");
cout << "l'ordinateur va ce mettre en veil administrateur" << endl ;
Sleep(2000);
system("shutdown -h");
exit(EXIT_SUCCESS);
}
if (mot == "va")
{
cout << "Oui , je vais bien merci , et vous ?" << endl ;
goto debut ;
}
if (mot == "mal")
{
cout << "je ferais tout mon possible pour vous rendre heureux administrateur" << endl ;
goto debut ;
}
if (mot == "bien")
{
cout << "j'en suis honore !" << endl ;
goto debut;
}
}
string reponse ("oui/non");
cout << "je n'ai pas compris votre demande administrateur ..." << endl;
cout << "je peux integret la commande non reconnue a mon system plus tard.Vous les vous ?" << endl;
cin >> reponse;
if (reponse == "oui")
{
string commandeIconnue ("salut sa va");
cout << "veillez entrer la commande non reconnue : ";
cin >> commandeIconnue;
ofstream fichier("script.txt",ios::out | ios::ate);
fichier<<commandeIconnue;
cout << "merci ^^" << endl;
commandeIconnue="";
goto debut;
}
if (reponse == "non")
{
goto debut;
}
else
{
cout << "tempis ..." << endl ;
goto debut;
}
return 0;
}
mais voila le problème , comme vous pouvez le voir dans les dernière ligne le programme est capable d'écrire dans un .txt les commande qu'il ne connais pas , jusque la tous va bien mais des qu'il quitte la boucle avec le goto et retourne au debuts le programme bug et retourne directement a la ligne cout << "je n'ai pas compris votre demande administrateur " << endl; il ne passe plus par la boucle while !!cela va faire des heures que je cherche mais je n'ai rien trouver .Pourtant les goto dans dans la boucle while vont très bien !!
Merci de votre aide
A voir également:
- Probleme avec mon programme c++
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
2 réponses
Salut, si tu débutes en c++, c'est l'occasion de ne pas prendre l'habitude d'utiliser goto.
std::istringstream iss(phrase);
je ne penses pas que tu puisses utiliser un constructeur deux fois de suite, construit une fois puis utilises par exemple iss.str (phrase);
std::istringstream iss(phrase);
je ne penses pas que tu puisses utiliser un constructeur deux fois de suite, construit une fois puis utilises par exemple iss.str (phrase);
Haha pas mal le GoTo :)
Du coup pour faire sans, utilise un do while je pense, du genre :
Et ensuite utilises des else if () pour ne pas tester chacune de tes conditions.
Après pour les constructeurs je sais pas trop
Du coup pour faire sans, utilise un do while je pense, du genre :
do { std::string phrase="voici une phrase pour lancer la meteo"; getline (cin,phrase); std::string mot; std::istringstream iss(phrase); if() {} else if () {} ... } while(iss>>mot)
Et ensuite utilises des else if () pour ne pas tester chacune de tes conditions.
Après pour les constructeurs je sais pas trop