En el siguiente bucle, si escribimos caracteres como la entrada cin
en lugar de los números que se esperan, entonces entra en el bucle infinito. ¿Podría alguien explicarme por qué ocurre esto?Bucle infinito con cin cuando se escribe cadena mientras se espera un número
Cuando usamos cin
, si la entrada no es un número, ¿hay formas de detectar esto para evitar los problemas mencionados anteriormente?
unsigned long ul_x1, ul_x2;
while (1)
{
cin >> ul_x1 >> ul_x2;
cout << "ux_x1 is " << ul_x1 << endl << "ul_x2 is " << ul_x2 << endl;
}
O mejor aún, un stringstream. – Maxpm
Si llamo a cin.clear() después de que cin falla, ¿por qué todavía no solicita una entrada la próxima vez que llamo cin >> x? –
Esta respuesta no soluciona el problema de OP cumplido ya que está ** incompleto **. Por favor, eche un vistazo a mi respuesta :) –