que pasa cuando en c++ al pedir que se introdusca un numero tu introduces un caracter

necesito hacer un programa por mi proyecto final y tengo ese problema, que cuando introdusco una letra en ves de un numero, me muestra los siguientes estatutos rapidamente y se traba, quiero saber como evitar que el usuario introcusca una letra o caracter accidentalmente, gracias
 
tendrias que poner el codigo para enterarnos un poco mas, porque no sabemos si usas el metodo de coger los numeros por ascii, directamente el numero, o que...

Aun asi, si lo haces por ascii los numeros estan entre 48 y 57, unicamente deberias colocar un if(ascii>57 || ascii<48) printf("Lo introducido no es un numero\n");
 
Suponiendo que usas el estandar de c++ iostream, cin solo toma el valor si este concuerda con el tipo de variable, es decir, no te permite poner un caracter en un int. En caso de que se escriba un caracter, cin no modificará la variable.


Adjunto código ilustrativo. Proba este código vos mismo, y fijate los valores que acepta.

Código:
#include <windows.h>
#include <iostream>
int main()
{
 int numero = 35;
 std::cout  << "Ingrese un numero: ";
 std::cin >> numero; //Si se ingresa un numero, la variable toma ese numero; en caso contrario,
                            //la variable va a seguir teniendo el valor 35.
 std::cout << "Usted ingreso: " << numero << endl;
 system("pause");
 return 0;
}

Otro ejemplo:

Código:
#include <windows.h>
#include <iostream>
int main()
{
 int numero = 132;
 std::cout  << "Ingrese un numero: ";
 std::cin >> numero; //Si se ingresa un numero, la variable toma ese numero; en caso contrario,
                            //la variable va a seguir teniendo el valor 132.
 std::cout << "Usted ingreso: " << numero << endl;
 system("pause");
 return 0;
}
 
Atrás
Arriba