una tecla salir pulse presione para cualquier continuar c++ string newline cin

c++ - tecla - Presione Enter para continuar



presione una tecla para salir c++ (6)

La función std::getline (ya introducida con C ++ 98) proporciona una forma portátil de implementar esto:

#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 esta question y answer después de observar que std::cin >> temp; no regresa con 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).

Esto no funciona:

string temp; cout << "Press Enter to Continue"; cin >> temp;


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 necesitas una cadena o int para esto solo getch();


Reemplace su cin >> temp con:

temp = cin.get();

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

cin >> esperará por el EndOfFile. De forma predeterminada, cin tendrá el indicador skipws establecido, lo que significa que ''saltea'' cualquier espacio en blanco antes de extraerlo y ponerlo en su cadena.


Tratar:

char temp; cin.get(temp);

o mejor aún:

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

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


Tratar:

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

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


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

o mejor:

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