Hola,
Tu programa se cuelga por que ya no hay enteros para leer desde la entrada estandar, cuando ingresas por el teclado un asterisco éste es reconocido como caracter y como no tienes ninguna instruccion para leer un caracter el programa se cuelga en el bucle.
Para evitar eso puedes realizar las siguientes modificaciones:
- Código: Seleccionar todo
#include <iostream>
using namespace std;
int main()
{
int suma,n,i;
suma=0;
cout<<"Ingrese los numeros a sumar: \n";
while(cin>>n)
{
suma=suma+n;
}
cout<<"\nla suma es: "<<suma<<endl;
}
La siguiente linea se ejecutará mientras haya una entrada (numeros) y si encuentra algun otro caracter devolverá un EOF o algo parecido y saldrá del while.
- Código: Seleccionar todo
while(cin>>n)
Si presionas un asterisco la entrada no se leerá y tambien saldra del while. Para salir voluntariamente puedes enviar un EOF con Ctrl+Z en windows o Ctrl+D en linux,
Aqui una muestra de la ejecucion del codigo:
- Código: Seleccionar todo
Ingrese los numeros a sumar:
1
3
4
3
4
5
4 56 6 7 87 *
la suma es: 180