2009-05-24 35 views

Respuesta

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

, o mejor:

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

De hecho, es una forma de plataforma cruzada, uno puede poner << flush detrás de cout y cin.sync() entre esas líneas para asegurarse de que funciona en todos los casos. ;-) –

+4

cin está ligado a cout, por lo tanto, antes de que ocurra cualquier i/o de cin, la salida de cout ya está vacía –

+9

¿Por qué el segundo código es "mejor"? – dani

8

Probar:

char temp; 
cin.get(temp); 

o, mejor aún:

creo que la entrada de cadena esperará hasta que se ingrese caracteres reales, no solo una nueva línea.

7

reemplazar su cin >> temp con:

temp = cin.get(); 

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

cin >> esperará a que el EndOfFile. De forma predeterminada, cin tendrá el conjunto de indicadores skipws, lo que significa que 'se salta' cualquier espacio en blanco antes de extraerlo y ponerlo en su cadena.

2

Probar:

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

En caso de éxito, la lectura de caracteres se devuelve (ascendido a un valor int, int getchar (void);), que se puede utilizar en un bloque de prueba (while, etc).

2

Necesita incluir conio.h así que intente esto, es fácil.

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

int main() { 

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

    return 0; 
} 

Con eso no se necesita una cadena o un entero de esto sólo getch();

+1

Esta respuesta ya no funciona, la función getch() estaba en desuso. –

0

La función std::getline (ya introducidos con C++ 98) proporciona una manera portátil para implementar esta:

#include <iostream> 
#include <string> 

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

Encontré esto gracias a esto question y answer después de observar que std::cin >> temp; no regresa con la entrada vacía. Así que me preguntaba cómo tratar con la entrada de usuario opcional (lo que tiene sentido para una variable de cadena, por supuesto, puede estar vacía).

Cuestiones relacionadas