CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

cin.get() ->> comprends pas

Mister_Gredin
Mister_Gredin
Niveau 4
05 février 2005 à 09:06:54

bonjour à tous

voila je vous explique mon problème.
dans mon programme ( c++) j´utilise la fonction cin.get();
là le programme attend que l´utilisateur appuie sur entrée.
mais le problème c´est que c´est une fonction que j´utilise plusieurs fois dans mon programme et il n´y a que la première que mon programme prend en note.
quand le programme arrive à la première fonction, il attend que j´appuie sur entrée, mais pour les autres, il continue comme si il n´y avait pas cette fonction, je suis donc obligé de mettre un cin normal et ça me dérange.
si quelqu´un pouvait m´aider, ça serait très sympa
merci

XyTiX
XyTiX
Niveau 8
05 février 2005 à 12:23:08

alors la, je ne sais pas du tout... Elle se réinitialise cette fonction? sinon quand tu as une question pour le C++,y´a un super topic pour ça :)

Vengeur41
Vengeur41
Niveau 10
05 février 2005 à 12:36:24

Remplace cin.get() par
getchar() ou system("pause") . ..
Pense à mettre #include < cstdio> ou #include < cstdlib>

Mister_Gredin
Mister_Gredin
Niveau 4
05 février 2005 à 17:25:01

merci beaucoup Vengeur41 j´utilise system("pause") et ca marche super

JeanYvesYves
JeanYvesYves
Niveau 10
06 février 2005 à 21:18:07

En effet, cin.get() sous Windows n´est pas fiable, la raison est tordue, je l´explique plus loin.

Je viens, vendredi dernier, je faire disparaitre tous les cin.get() de mon tuto et les remplacer par des system("PAUSE");

La raison ( que pour les puristes) : chaque lettre est codée sous un code ASCII
( le ´a´ a comme code 65 par exemple), mais meme le retour charriot est vue comme un caractere...
Sous Unix, le code est 13, et sous Windows, le code est . ... la est le probleme ! !! il y a 2 codes : 10 et 13 : en effet, chaque retour charriot est codé sous 2 codes, ce qui perturbe le cin.get() qui prend le 1er code ( le 10) et qui laisse l´autre en tampon, autre qui fait foirer le cin.get() suivant, bref...

JeanYvesYves
JeanYvesYves
Niveau 10
06 février 2005 à 21:22:33

autre détail sur l´anecdote ci dessus : Windows utilisait 2 codes pour pouvoir etre compatible avec les imprimantes :
le code 13 veut dire " NEW LINE", le code 10 veut dire " CARRIAGE RETURN", c´est a dire que ça veut dire " retourne tout a gauche"
Cela était pratique pour piloter la tete d´une imprimante matricielle avec simplement de l´ASCII.
J´ajouterai que sous Mac, le retour de ligne se code par 13 10 ( 2 caracteres, mais l´inverse de windows...) ah lala... Pratique pour les anciennes imprimantes, qui ne sont plus du tout utilisées maintenant, pourtant, c´est toujours d´actualité, et ça nous emm...rde

Si vous etes intéressé par le code ASCII :
http://www.asciitable.com

dnob700
dnob700
Niveau 10
06 février 2005 à 22:24:30

juste pour dire que sous windows aussi c´est 13 10 et pas 10 13.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment