Me he dado cuenta de que cada vez que escribo un programa que utiliza std::cin
que si quiero que el usuario presione Enter para finalizar el programa, tengo que escribir std::cin.ignore()
dos veces para obtener el comportamiento deseado. Por ejemplo:¿Por qué es necesario un segundo cin.ignore()?
#include <iostream>
int main(void)
{
int val = 0;
std::cout << "Enter an integer: ";
std::cin >> val;
std::cout << "Please press Enter to continue..." << std::endl;
std::cin.ignore();
std::cin.ignore(); // Why is this one needed?
}
También he notado que cuando no estoy usando cin
de entrada real, sino más bien para la llamada ignore()
al final, lo único que necesita uno.
¿Está ejecutando Linux o Windows, puede ser causa de el problema CRLF si ejecuta Windows ... – Ben
El mismo "problema" ocurre en Solaris. No tiene nada que ver con CRLF. –