2009-05-24 8 views

Répondre

69
cout << "Press Enter to Continue"; 
cin.ignore(); 

ou, mieux:

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

C'est en effet une manière multi-plateforme, on peut mettre << flush derrière le cout et cin.sync() entre ces lignes pour s'assurer qu'il fonctionne dans tous les cas. ;-) –

+4

cin est lié à cout, donc avant que n'importe quel i/o de cin arrive, la sortie de cout est déjà vide –

+9

Pourquoi le second code est-il "meilleur"? – dani

8

Essayez:

char temp; 
cin.get(temp); 

ou, mieux encore:

Je pense que l'entrée de chaîne attendra jusqu'à ce que vous entrez des caractères réels, pas seulement un saut de ligne.

2

Essayez:

cout << "Press Enter to Continue"; 
getchar(); 

En cas de succès, la lecture de caractères est retourné (promu à une valeur int, int getchar (void);), qui peut être utilisé dans un bloc d'essai (while, etc.).

2

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

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

int main() { 

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

    return 0; 
} 

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

+1

Cette réponse ne fonctionne plus, la fonction getch() a été dépréciée. –

0

La fonction std::getline (déjà introduit avec 98 C++) fournit un moyen portable pour mettre en œuvre ce:

#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 à ce question et answer après avoir observé que std::cin >> temp; ne retourne pas avec l'entrée vide. Donc, je me demandais comment gérer l'entrée optionnelle de l'utilisateur (ce qui est logique pour une variable de chaîne peut bien sûr être vide).

Questions connexes