web-dev-qa-db-fra.com

Pression de touche C ++: getch, cin.get?

J'ai un programme Win32 qui fonctionne sur une boucle. J'aimerais pouvoir interrompre ce programme en attendant une pression sur une touche. Peu importe que j'utilise "n'importe quelle touche" ou une touche spécifique, mais je dois faire figer le programme jusqu'à ce que j'appuie sur quelque chose.

Je me demande quelle commande utiliser. Je travaille avec Visual C++ et le compilateur ne reconnaît aucune des commandes suivantes:

cin.get()

std::cin.get()

getch()

Je suis relativement nouveau en C++. Je comprends que dans une application console, c'est une action assez simple à prendre (cin.get), mais que cela peut être plus difficile dans Win32. Toute solution simple ou solution de contournement serait appréciée. Le programme est conçu sur mesure pour être utilisé dans une seule expérience scientifique, donc pour l'instant je ne suis pas dérangé si la solution est un peu bâclée (!)

Toutes mes excuses si j'ai raté des informations importantes de ma question.

26
CaptainProg

Vous ne devez utiliser ni l'un ni l'autre.

Tu devrais utiliser

#include <iostream>
...
int main()
{
   ... 
   std::cin.ignore(); //why read something if you need to ignore it? :)
}'

Voici la documentation

69
Armen Tsirunyan

Exemple:

#include <iostream>
#include <conio.h>

int main()
{
  std::cout << "Press any key to continue . . ." << std::endl;
  _getch(); // wait for keypress
}

_getch() est C++ équivalent à C getch()

4
Daniel Blom

Essayer

#include <iostream>

using namespace std;

char temp;
cin >> temp;
3
Jason

En supposant que vous cherchez une alternative pour getch (qui ne fait pas écho à l'écran).

Si vous utilisez Windows et Visual Studio pour être précis, essayez d'utiliser _getch. En voici un lien http://msdn.Microsoft.com/en-us/library/078sfkak (v = VS.100) .aspx

2
xeon111

Vous devez #include <iostream> Et utiliser std::cin.get();

Je pense que la getch() est une fonction C, mais puisque vous utilisez C++, alors la cin serait plus appropriée.

1
Tony The Lion