web-dev-qa-db-fra.com

Appuyez sur Entrée pour continuer

Cela ne fonctionne pas:

string temp;
cout << "Press Enter to Continue";
cin >> temp;
35
Elliot
cout << "Press Enter to Continue";
cin.ignore();

ou mieux:

#include <limits>
cout << "Press Enter to Continue";
cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
74
rlbond

Essayer:

char temp;
cin.get(temp);

ou mieux encore:

char temp = 'x';
while (temp != '\n')
    cin.get(temp);

Je pense que l'entrée de chaîne attendra jusqu'à ce que vous saisissiez de vrais caractères, pas seulement une nouvelle ligne.

9
paxdiablo

Remplacez votre cin >> temp avec:

temp = cin.get();

http://www.cplusplus.com/reference/iostream/istream/get/

cin >> attendra EndOfFile. Par défaut, cin aura le drapeau skipws défini, ce qui signifie qu'il `` saute '' les espaces avant d'être extrait et mettre dans votre chaîne.

8
Nick Presta

Vous devez inclure conio.h alors essayez ceci, c'est facile.

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

int main() {

  //some code like
  cout << "Press Enter to Continue";
  getch();

  return 0;
}

Avec cela, vous n'avez pas besoin d'une chaîne ou d'un int pour cela juste getch();

2
HappyMajor

La fonction std :: getline (déjà introduite avec C++ 98) fournit un moyen portable de l'implémenter:

#include <iostream>
#include <string>

void press_any_key()
{
    std::cout << "Press Enter to Continue";
    std::string temp;
    std::getline(std::cin, temp);
}

J'ai trouvé cela grâce à ceci question et réponse après avoir observé que std::cin >> temp; ne revient pas avec une entrée vide. Je me demandais donc comment gérer les entrées utilisateur facultatives (ce qui est logique car une variable de chaîne peut bien sûr être vide).

1
Wolf