 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Jaco Guest
|
Posted: Wed Feb 09, 2005 3:34 pm Post subject: Petit prog à debugger et améliorer |
|
|
Voici un petit programme :
#include <cstdlib>
#include <iostream>
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragout"<
: ";
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<
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
|
|
| Back to top |
|
 |
Jaco Guest
|
Posted: Wed Feb 09, 2005 3:40 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
"Jaco" <ride2kill (AT) yahoo (DOT) fr> a écrit dans le message de
news:cudab5$ot1$1 (AT) s1 (DOT) news.oleane.net...
| Quote: | Voici un petit programme :
#include <cstdlib
#include
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragout"<
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<
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
|
|
| Back to top |
|
 |
fabrizio Guest
|
Posted: Wed Feb 09, 2005 3:42 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
| Quote: | #include <cstdlib
#include
using namespace std;
int main ()
{
int choix;
bool exit=false; |
while(!exit) {
| Quote: | cout<<"Que préférez vous comme plat ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<
: ";
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 ?";
}
| Quote: | cout<
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é.
|
|
| Back to top |
|
 |
Jaco Guest
|
Posted: Wed Feb 09, 2005 3:57 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
Non, ça ne recommence pas la procédure mais affiche "bla" puis "appuyer sur
une touche pour quitter". C'est pas ça !
"fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudavm$c9q$1 (AT) utcnews (DOT) utc.fr...
| Quote: | #include <cstdlib
#include
using namespace std;
int main ()
{
int choix;
bool exit=false;
while(!exit) {
cout<<"Que préférez vous comme plat ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<
"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<
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é.
|
|
|
| Back to top |
|
 |
fabrizio Guest
|
Posted: Wed Feb 09, 2005 4:02 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
| Quote: | 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=false;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<
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<
//system("PAUSE");
} //while(!exit)
return EXIT_SUCCESS;
}
----
|
|
| Back to top |
|
 |
Jaco Guest
|
Posted: Wed Feb 09, 2005 4:13 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
"fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudc5o$cn7$1 (AT) utcnews (DOT) utc.fr...
| Quote: | 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
using namespace std;
int main ()
{
int choix;
bool exit=false;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<
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<
//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 !
|
|
| Back to top |
|
 |
Jaco Guest
|
Posted: Wed Feb 09, 2005 4:16 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
"Jaco" <ride2kill (AT) yahoo (DOT) fr> a écrit dans le message de
news:cudcj7$qj5$1 (AT) s1 (DOT) news.oleane.net...
| Quote: |
"fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudc5o$cn7$1 (AT) utcnews (DOT) utc.fr...
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
using namespace std;
int main ()
{
int choix;
bool exit=false;
while(!exit) {
cout << "Que préférez vous comme plat ? :" <
cout << "1-Les Rognons n2-La Raclette n3-Le Ragoutn4-Quitter"<
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<
//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 ?
|
|
| Back to top |
|
 |
fabrizio Guest
|
Posted: Wed Feb 09, 2005 4:31 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
| Quote: | Pardon, ça marche !!!!!!
|
excuses acceptées :)
| Quote: | Par contre, sais-tu comment faire un cls (dos) pour éviter une liste de
menus dans la console ?
|
system(cls);
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Wed Feb 09, 2005 9:54 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
Jaco wrote:
| Quote: |
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=&threadm=417497bf%240%2431724%248fcfb975%40news.wanadoo.fr
--
Loïc
|
|
| Back to top |
|
 |
nico Guest
|
Posted: Wed Feb 09, 2005 10:00 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
| Quote: | system(cls);
Plutot system("cls"); |
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Thu Feb 10, 2005 10:40 am Post subject: Re: Petit prog à debugger et améliorer |
|
|
Jaco wrote:
| Quote: | "fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudc5o$cn7$1 (AT) utcnews (DOT) utc.fr...
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 !
|
La page que tu as trouvée, oui. (Pour commencer, je ne sais pas
comment DOS aurait fait pour utiliser du ISO 8859-1, vue qu'il
est apparu, ou au moins a ét't conçu avant que IOS 8859-1 soit
répandu.)
Je ne m'y connais pas trop bien en Windows, mais normalement,
les locale ont été conçus pour régler ce genre de problème. Il
faudrait détecter (d'une manière qui dépend de l'implémentation)
la page de code active, et positionner le locale en conséquence.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
Alexandre Guest
|
Posted: Thu Feb 10, 2005 2:09 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
bonjour,
| Quote: | #include <cstdlib
#include
using namespace std;
int main ()
{
int choix;
cout<<"Que préférez vous comme plat ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragout"<
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...
| Quote: |
- 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.
| Quote: | - 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 ? :" <
cout<<"1-Les Rognons n2-La Raclette n3-Le Ragoutn4 - Fin"<
<<"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<
cin.get();
}while(choix!=4);
return 0;
}
| Quote: |
Merci de votre aide.
Jaco
|
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Thu Feb 10, 2005 9:00 pm Post subject: Re: Petit prog à debugger et améliorer |
|
|
[email]kanze (AT) gabi-soft (DOT) fr[/email] wrote:
| Quote: | Jaco wrote:
"fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudc5o$cn7$1 (AT) utcnews (DOT) utc.fr...
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 !
La page que tu as trouvée, oui. (Pour commencer, je ne sais pas
comment DOS aurait fait pour utiliser du ISO 8859-1, vue qu'il
est apparu, ou au moins a ét't conçu avant que IOS 8859-1 soit
répandu.)
Je ne m'y connais pas trop bien en Windows, mais normalement,
les locale ont été conçus pour régler ce genre de problème. Il
faudrait détecter (d'une manière qui dépend de l'implémentation)
la page de code active, et positionner le locale en conséquence.
|
C'est ce que j'avais regardé avant de partir dans la direction que j'ai
indiquée dans un autre post, mais en fait, ça ne m'a mené nulle part. Et
je n'ai pas totalement l'impression que le problème soit là (j'entends
par là qu'il est possible qu'un locale fait main spécifiquement corrige
ce problème, mais en tous cas tous les locales fournis avec le
compilateur que j'ai pu essayer n'y ont rien changé).
Le mieux que j'ai pu faire, c'est à l'aide de la fonction spécifique
windows chcp récupérer la page de code courante (voir
[url]http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chcp.mspx)[/url],
mais il faut encore après ça modifier la police d'affichage dans la console.
Il parrait qu'une solution par l'intermédiaire de la fonction non
documentée SetConsoleFont permet de le faire, mais d'un ce n'est pas
hyper robuste, et de deux, ça empêche l'utilisateur de configurer sa
console comme il le souhaite.
--
Loïc
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Fri Feb 11, 2005 8:54 am Post subject: Re: Petit prog à debugger et améliorer |
|
|
Loïc Joly wrote:
| Quote: | kanze (AT) gabi-soft (DOT) fr wrote:
Jaco wrote:
"fabrizio" <watch.the (AT) stars (DOT) fr> a écrit dans le message de
news:cudc5o$cn7$1 (AT) utcnews (DOT) utc.fr...
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 !
La page que tu as trouvée, oui. (Pour commencer, je ne sais
pas comment DOS aurait fait pour utiliser du ISO 8859-1, vue
qu'il est apparu, ou au moins a ét't conçu avant que IOS
8859-1 soit répandu.)
Je ne m'y connais pas trop bien en Windows, mais
normalement, les locale ont été conçus pour régler ce genre
de problème. Il faudrait détecter (d'une manière qui dépend
de l'implémentation) la page de code active, et positionner
le locale en conséquence.
C'est ce que j'avais regardé avant de partir dans la direction
que j'ai indiquée dans un autre post, mais en fait, ça ne m'a
mené nulle part. Et je n'ai pas totalement l'impression que le
problème soit là (j'entends par là qu'il est possible qu'un
locale fait main spécifiquement corrige ce problème, mais en
tous cas tous les locales fournis avec le compilateur que j'ai
pu essayer n'y ont rien changé).
|
Il me semble que Plauger a déjà dit qu'il avait de tels locales
à vendre. C-à-d que Microsoft pourrait les avoir et les fournir
s'il voulait. C'est donc un problème de politique commerciale,
et non un problème technique.
| Quote: | Le mieux que j'ai pu faire, c'est à l'aide de la fonction
spécifique windows chcp récupérer la page de code courante
(voir
[url]http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/chcp.mspx)[/url],
mais il faut encore après ça modifier la police d'affichage
dans la console.
|
Comment ? Si tu récupères la page de code courante, est-ce que
ça ne te dit pas l'encodage de la police ? Ensuite, c'est à toi
de choisir : ou bien, ton code s'adapte à l'encodage
(théoriquement, au moins, au moyen des locale), ou bien, tu as
un mechanisme pour changer de police, et ton programme s'impose
à la fenêtre.
Il y a des avantages à la dernière solution ; si tu veux
afficher tel ou tel caractère, tu es sûr de pouvoir le faire.
Mais il n'y a pas que des avantages : d'abord, il faut
s'assurait que tes modifications n'ont pas d'effet au delà de
ton programme, et ensuite, il faut être sûr que les pages de
code que tu veux sont installées.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|