Cita de: Meta en 26 Marzo 2017, 08:39 AM
La abreviación que hiciste para ahorrar código está muy curioso, antes debo resolver problemas indicado arriba, a parte de eso, lo de pulsar una tecla y automáticamente ejecuta el envio.
No era una abreviación, era la forma de corregir el flujo del programa :/
Cita de: Meta en 26 Marzo 2017, 13:25 PM
Si escribo letras, se vuelve loco. Si escribo cualquier número, funciona de maravilla.
Al usar el operator>> de istream (cin), le estás pasando una variable numérica. Si no recibe una entrada válida, pone activa alguna de sus flags internas: http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/
Para ver si está la flag de error (la que te interesa en este caso), tienes el método fail(). Si quieres ver si hay errores de cualquier tipo, tienes el operator bool de la clase ios.
Usando el operator bool:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int main(){
while(true){
int n;
cin >> n;
if(!cin){
cout << "Error" << endl;
cin.clear();
cin.sync();
}else{
cout << "Ok: " << n << endl;
}
}
}