Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2780 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  "cin" marche pas !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"cin" marche pas !

n°1670115
xphanoo
Posté le 12-01-2008 à 15:04:17  profilanswer
 

bonjour,
je débute en C++ et me voilà confronté à un problème.
 

Code :
  1. int main()
  2. {
  3. int choix = 0;
  4. do
  5. {
  6.  cout << "LOUL - Que veux-tu faire mon brave ?" << endl ;
  7.  cin >> choix ;
  8.  switch (choix)
  9.  {
  10.   case 1: choix=1 ; break ;
  11.   case 2: choix=2 ; break ;
  12.   case 3: choix=3 ; break ;
  13.   default: system("cls" ) ; cout << "Espece de couillon ça t'amuses d'écrire n'importe quoi ??" << endl ; break ;
  14.  }
  15. }
  16. while (choix!=1 || choix!=2 || choix!=3);
  17. system("PAUSE" ) ;
  18. return 0 ;
  19. }


 
ce que je fais c'est un menu, on peut choisir l'option 1, 2 ou 3 mais je veux qu'il soit réaffiché si on tape autre chose. le problème c'est qu'une fois que j'ai tapé une valeur autre que 1, 2 ou 3 le programme part dans une boucle infinie, il réaffiche sans cesse le texte comme si je continuais a taper une mauvaise valeur, le CIN n'a plus aucun effet quoi ! (il marche que la 1ere fois, après il fait plus rien...)
 
comment faire ??


Message édité par xphanoo le 12-01-2008 à 15:10:29
mood
Publicité
Posté le 12-01-2008 à 15:04:17  profilanswer
 

n°1670121
Ace17
Posté le 12-01-2008 à 15:18:37  profilanswer
 
n°1670124
gilou
Modérateur
Modzilla
Posté le 12-01-2008 à 15:24:03  profilanswer
 

Citation :

"cin" marche pas !

Je ne sais pas faire marcher cin [:aloy]
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1670132
juloss4
Posté le 12-01-2008 à 16:11:56  profilanswer
 

salut.
Pour commencer OPTIMISE TES PROGRAMMES!!!!
Pourquoi tu utilise un switch ?????
 

Code :
  1. #include <iostream>
  2. using namesapce std;
  3. int main()
  4. {
  5. int choix = 0;
  6.   while (choix >3  || choix <1) //pas besion du do...while
  7.   {
  8.    cout << "LOUL - Que veux-tu faire mon brave ?" << endl ;
  9.    cin   >> choix ;
  10.   } 
  11. system("PAUSE" ) ;
  12. return EXIT_SUCCESS ;
  13. }


Si ca marche pas, c'est ton pc.
Et puis avant d'ecrire des horreur sur le forum apprends le C++...
 

n°1670142
xphanoo
Posté le 12-01-2008 à 17:15:37  profilanswer
 

je vais tester cin.clear() comme indiqué dans le lien de Ace17  ;) (merci à lui)
 
juloss4 j'utilise le switch car selon la réponse qu'on aura donné, le programme se déroulera de façon différente: pour 1 le jeu se lance, pour 2 on accède a un sous-menu et pour 3 le programme se quitte  ;)


Message édité par xphanoo le 12-01-2008 à 17:18:40
n°1670174
Joel F
Real men use unique_ptr
Posté le 12-01-2008 à 18:37:39  profilanswer
 

et switch ca n'a jamasi été un bottleneck hein [:dawa]

n°1670293
xphanoo
Posté le 13-01-2008 à 01:02:27  profilanswer
 

et que pensez vous du goto ?
parce que dans mon prog j'aurais souvent besoin de faire des retour en arrière dans le code... ça me parait plus simple avec des goto qu'avec des boucles imbriquées...

n°1670317
Ace17
Posté le 13-01-2008 à 10:05:33  profilanswer
 

xphanoo a écrit :

et que pensez vous du goto ?
parce que dans mon prog j'aurais souvent besoin de faire des retour en arrière dans le code... ça me parait plus simple avec des goto qu'avec des boucles imbriquées...


C'est un blague? [:mlc]
http://en.wikipedia.org/wiki/GOTO# [...] goto_usage
Mais rien ne vaut l'experience, si tu es sur un projet perso, tu peux t'amuser a le farcir de gotos... et tu vas comprendre!
 

n°1670407
Joel F
Real men use unique_ptr
Posté le 13-01-2008 à 17:24:45  profilanswer
 

each time you sue a goto, god kills a kitten :o

n°1670609
Taz
bisounours-codeur
Posté le 14-01-2008 à 09:43:08  profilanswer
 

Ace17 a écrit :


C'est un blague? [:mlc]
http://en.wikipedia.org/wiki/GOTO# [...] goto_usage
Mais rien ne vaut l'experience, si tu es sur un projet perso, tu peux t'amuser a le farcir de gotos... et tu vas comprendre!
 


En C++, c'est difficile de trouver un usage, en C c'est extrêment pratique. Il faut pas avoir de tabou sur les goto.


Message édité par Taz le 14-01-2008 à 09:43:27
mood
Publicité
Posté le 14-01-2008 à 09:43:08  profilanswer
 

n°1671733
gilou
Modérateur
Modzilla
Posté le 15-01-2008 à 19:18:19  profilanswer
 

Les seuls cas ou j'utilise des goto utiles en C, c'est quand j'optimise a la pogne des automates d'état fini. Un contexte assez particulier.
Je suppose qu'il y a d'autres cas spécifiques, mais bon, ca court pas les rues.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1671924
Taz
bisounours-codeur
Posté le 16-01-2008 à 08:51:04  profilanswer
 

gilou a écrit :

Les seuls cas ou j'utilise des goto utiles en C, c'est quand j'optimise a la pogne des automates d'état fini. Un contexte assez particulier.
Je suppose qu'il y a d'autres cas spécifiques, mais bon, ca court pas les rues.
A+,


on dévie à parler de C, mais dans du bon code C, tu en trouves très facilement pour faire de la gestion d'erreur.

n°1680111
xphanoo
Posté le 31-01-2008 à 21:53:55  profilanswer
 

bon j'ai finis par trouver la solution a mon probleme de cin.
quand on utilise cin dans une boucle a la fin il faut vider le buffer en faisant cin.sync(), et là marche nickel

n°1680189
Taz
bisounours-codeur
Posté le 01-02-2008 à 09:18:20  profilanswer
 

xphanoo a écrit :

bon j'ai finis par trouver la solution a mon probleme de cin.
quand on utilise cin dans une boucle a la fin il faut vider le buffer en faisant cin.sync(), et là marche nickel


Non ça ne marche pas.
 
Il faut tester le retour de ton opération:
 

Code :
  1. if(cin >> choix) { ok c'est bon } else { erreur de lecture }


 
Personne n'a jamais eu à utiliser sync qui a juste un effet fortuit pour toi.

n°1680330
Taz
bisounours-codeur
Posté le 01-02-2008 à 11:52:22  profilanswer
 

on se fait un petit fight iostream / istream / ostream ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  "cin" marche pas !

 

Sujets relatifs
JVM comment ça marche en fait...XMLHttpRequest qui marche en local, mais pas en ligne...
[VB.NET 05] - Appli console marche sous XP, pas sous Vista ?[Résolu][StringTokenizer - Urgent] Comment ça marche ?
[Résolu][Html/CSS]"a:active" ne marche qu'à l'instant du clic..Ma caltoche ne marche pas !
Menu JS qui ne marche pas avec IECSS: pourquoi ça marche pas ?
swf en boucle | loop="false" ne marche pas[XSLT]Récursivité
Plus de sujets relatifs à : "cin" marche pas !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR