Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Petit prog à debugger et améliorer

10 réponses
Avatar
Jaco
Voici un petit programme :

#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons \n2-La Raclette \n3-Le Ragout"<<endl <<"Votre choix
: ";
cin>>choix;
if (choix==1) printf("Vous préférez les rognons");
if (choix==2) printf("Vous préférez la raclette");
if (choix==3) printf("Vous préférez le ragout");
else printf("T'es con ou quoi ?");
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Plusieurs questions :

- Comment faire pour que les "é" de "préférez" ne soit pas remplacés par des
"ù" dans la console dos ?
- Lorsque je choisi 1 ou 2, il affiche qu'en même tout de suite derrière
("T'es con ou quoi ?") alors que cela ne se passe pas si on choisi l'option
3.
- Comment faire pour que lorsqu'on appuie sur une touche à la fin, il
recommence la procédure ?

Merci de votre aide.
Jaco

10 réponses

Avatar
Jaco
"Jaco" a écrit dans le message de
news:cudab5$ot1$
Voici un petit programme :

#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragout"<<endl <<"Votre
choix

: ";
cin>>choix;
if (choix==1) printf("Vous préférez les rognons");
if (choix==2) printf("Vous préférez la raclette");
if (choix==3) printf("Vous préférez le ragout");
else printf("T'es con ou quoi ?");
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Plusieurs questions :

1 - Comment faire pour que les "é" de "préférez" ne soit pas remplacés par
des

"ù" dans la console dos ?
2 - Lorsque je choisi 1 ou 2, il affiche qu'en même tout de suite derrière
("T'es con ou quoi ?") alors que cela ne se passe pas si on choisi
l'option

3.
3 - Comment faire pour que lorsqu'on appuie sur une touche à la fin, il
recommence la procédure ?

Merci de votre aide.
Jaco


J'ai remplacé certaines lignes pou régler le pb 2 :


if (choix==1) printf("Vous préférez les rognons");
else if (choix==2) printf("Vous préférez la raclette");
else if (choix==3) printf("Vous préférez le ragout");
else printf("T'es con ou quoi ?");

reste le pb 1 et 3
merci
jaco

Avatar
fabrizio
#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
bool exitúlse;

while(!exit) {
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<<endl <<"Votre choix
: ";
cin>>choix;
switch(choix) {

case 1 : cout << "bla"; break;
case 2 : cout << "bli"; break;
case 3 : cout << "blu"; break;
case 4 : exit=true; break;
default : cout << "T'es con ou quoi ?";
}
cout<<endl;
system("PAUSE");
} //while(!exit)

return EXIT_SUCCESS;
}

Plusieurs questions :

- Comment faire pour que les "é" de "préférez" ne soit pas remplacés par des
"ù" dans la console dos ?


ca j'en sais fichtre rien.

j'ai pas testé.

Avatar
Jaco
Non, ça ne recommence pas la procédure mais affiche "bla" puis "appuyer sur
une touche pour quitter". C'est pas ça !

"fabrizio" a écrit dans le message de
news:cudavm$c9q$
#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
bool exitúlse;

while(!exit) {
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<<endl
<<"Votre choix


: ";
cin>>choix;
switch(choix) {

case 1 : cout << "bla"; break;
case 2 : cout << "bli"; break;
case 3 : cout << "blu"; break;
case 4 : exit=true; break;
default : cout << "T'es con ou quoi ?";
}
cout<<endl;
system("PAUSE");
} //while(!exit)

return EXIT_SUCCESS;
}

Plusieurs questions :

- Comment faire pour que les "é" de "préférez" ne soit pas remplacés par
des


"ù" dans la console dos ?


ca j'en sais fichtre rien.

j'ai pas testé.



Avatar
fabrizio
Non, ça ne recommence pas la procédure mais affiche "bla" puis "appuyer sur
une touche pour quitter". C'est pas ça !


tu bluffes.
ceci fonctionne chez moi :
----
#include <cstdlib>
#include <iostream>

using namespace std;

int main ()
{
int choix;

bool exitúlse;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <<endl;
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<<endl;
cout << "Votre choix : n";
cin>>choix;

switch(choix) {
case 1 : cout << "bla"; break;
case 2 : cout << "bli"; break;
case 3 : cout << "blu"; break;
case 4 : exit=true; break;
default : cout << "T'es con ou quoi ?";
}

cout<<endl;
//system("PAUSE");
} //while(!exit)

return EXIT_SUCCESS;
}
----

Avatar
Jaco
"fabrizio" a écrit dans le message de
news:cudc5o$cn7$
Non, ça ne recommence pas la procédure mais affiche "bla" puis "appuyer
sur


une touche pour quitter". C'est pas ça !


tu bluffes.
ceci fonctionne chez moi :
----
#include <cstdlib>
#include <iostream>

using namespace std;

int main ()
{
int choix;

bool exitúlse;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <<endl;
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<<endl;
cout << "Votre choix : n";
cin>>choix;

switch(choix) {
case 1 : cout << "bla"; break;
case 2 : cout << "bli"; break;
case 3 : cout << "blu"; break;
case 4 : exit=true; break;
default : cout << "T'es con ou quoi ?";
}

cout<<endl;
//system("PAUSE");
} //while(!exit)

return EXIT_SUCCESS;
}
----


Non, je t'assure, ça affiche "bla" puis "Appuyez sur une touche pour
continuer..."
Pour l'autre question (celle concernant les accents), j'ai trouvé une
explication ds un forum sur le web :
"Windows utilise une page de code de merde (soyont objectifs) du style
wp-1252, au lieu d'un bon vieux iso-8859-1 des familles.
Donc n'hésite pas une seconde, transforme ton code en une merde infame et
pas portable en utilisant les séquences du genre :
x82 pour le é, x8A pour le è, x85 pour le à, ... "
Bref, c'est la merde !


Avatar
Jaco
"Jaco" a écrit dans le message de
news:cudcj7$qj5$

"fabrizio" a écrit dans le message de
news:cudc5o$cn7$
Non, ça ne recommence pas la procédure mais affiche "bla" puis
"appuyer



sur
une touche pour quitter". C'est pas ça !


tu bluffes.
ceci fonctionne chez moi :
----
#include <cstdlib>
#include <iostream>

using namespace std;

int main ()
{
int choix;

bool exitúlse;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <<endl;
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<<endl;
cout << "Votre choix : n";
cin>>choix;

switch(choix) {
case 1 : cout << "bla"; break;
case 2 : cout << "bli"; break;
case 3 : cout << "blu"; break;
case 4 : exit=true; break;
default : cout << "T'es con ou quoi ?";
}

cout<<endl;
//system("PAUSE");
} //while(!exit)

return EXIT_SUCCESS;
}
----


Non, je t'assure, ça affiche "bla" puis "Appuyez sur une touche pour
continuer..."
Pour l'autre question (celle concernant les accents), j'ai trouvé une
explication ds un forum sur le web :
"Windows utilise une page de code de merde (soyont objectifs) du style
wp-1252, au lieu d'un bon vieux iso-8859-1 des familles.
Donc n'hésite pas une seconde, transforme ton code en une merde infame et
pas portable en utilisant les séquences du genre :
x82 pour le é, x8A pour le è, x85 pour le à, ... "
Bref, c'est la merde !

Pardon, ça marche !!!!!!

Par contre, sais-tu comment faire un cls (dos) pour éviter une liste de
menus dans la console ?





Avatar
fabrizio
Pardon, ça marche !!!!!!


excuses acceptées :)

Par contre, sais-tu comment faire un cls (dos) pour éviter une liste de
menus dans la console ?


system(cls);

Avatar
Loïc Joly
Jaco wrote:

Non, je t'assure, ça affiche "bla" puis "Appuyez sur une touche pour
continuer..."
Pour l'autre question (celle concernant les accents), j'ai trouvé une
explication ds un forum sur le web :
"Windows utilise une page de code de merde (soyont objectifs) du style
wp-1252, au lieu d'un bon vieux iso-8859-1 des familles.
Donc n'hésite pas une seconde, transforme ton code en une merde infame et
pas portable en utilisant les séquences du genre :
x82 pour le é, x8A pour le è, x85 pour le à, ... "
Bref, c'est la merde !


J'ai posté il y a peu une classe pour corriger çà (lire les 2 messages
pour une solution complète):
http://www.google.fr/groups?hl=fr&lr=&threadmA7497bf%240%2431724%248fcfb975%40news.wanadoo.fr

--
Loïc

Avatar
nico
system(cls);
Plutot system("cls");


Avatar
Alexandre
bonjour,

#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragout"<<endl <<"Votre
choix
: ";
cin>>choix;
if (choix==1) printf("Vous préférez les rognons");
if (choix==2) printf("Vous préférez la raclette");
if (choix==3) printf("Vous préférez le ragout");
else printf("T'es con ou quoi ?");


le 'else' ne s'applique qu'au 3e if...


- Comment faire pour que les "é" de "préférez" ne soit pas remplacés par
des
"ù" dans la console dos ?


pas de solution simple : le problème vient d'une différence entre les pages
de codes dos/windows, et le fait que les codes des caractères non-ASCII ne
sont pas normalisés. En général, on vire les accents en mode console.

- Comment faire pour que lorsqu'on appuie sur une touche à la fin, il
recommence la procédure ?


tu encapsules le tout dans une boucle :

int main()
{
int choix;
do
{
cout<<"Que préférez vous comme plat ? :" <<endl;
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4 - Fin"<<endl
<<"Votre choix
: ";
cin>>choix;
if (choix==1) cout<<"Vous préférez les rognons";
else if (choix==2) cout<<"Vous préférez la raclette";
else if (choix==3) cout<<"Vous préférez le ragout";
else if (choix!=4) cout<<"Erreur de saisie";
cout<<endl;
cin.get();
}while(choix!=4);
return 0;
}



Merci de votre aide.
Jaco