C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Petit prog à debugger et améliorer

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Jaco
Guest





PostPosted: Wed Feb 09, 2005 3:34 pm    Post subject: Petit prog à debugger et améliorer Reply with quote



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





PostPosted: Wed Feb 09, 2005 3:40 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote




"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





PostPosted: Wed Feb 09, 2005 3:42 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote



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





PostPosted: Wed Feb 09, 2005 3:57 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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





PostPosted: Wed Feb 09, 2005 4:02 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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





PostPosted: Wed Feb 09, 2005 4:13 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote


"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





PostPosted: Wed Feb 09, 2005 4:16 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote


"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 ?
Quote:




Back to top
fabrizio
Guest





PostPosted: Wed Feb 09, 2005 4:31 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote


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





PostPosted: Wed Feb 09, 2005 9:54 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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





PostPosted: Wed Feb 09, 2005 10:00 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

Quote:
system(cls);
Plutot system("cls");




Back to top
kanze@gabi-soft.fr
Guest





PostPosted: Thu Feb 10, 2005 10:40 am    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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





PostPosted: Thu Feb 10, 2005 2:09 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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





PostPosted: Thu Feb 10, 2005 9:00 pm    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

[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





PostPosted: Fri Feb 11, 2005 8:54 am    Post subject: Re: Petit prog à debugger et améliorer Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.