Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Pequeña duda

Estas en el tema de Pequeña duda en el foro de C/C++ en Foros del Web. Hola tengo una duda con este pequeño programa #include<iostream> using namespace std; long int fact(int n){ if(n==0) return 1; else return n*fact(n-1);} int main() { ...
  #1 (permalink)  
Antiguo 16/09/2012, 22:56
 
Fecha de Ingreso: septiembre-2012
Ubicación: Lima
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 4
Pequeña duda

Hola tengo una duda con este pequeño programa

#include<iostream>
using namespace std;

long int fact(int n){
if(n==0) return 1;
else return n*fact(n-1);}

int main()
{
int n;
cout<<"Ingresar numero : ";
cin>>n;
cout<<"el factorial del numero es : "<<fact(n)<<endl;
cin.get();
cin.get();
}

Porque tengo que poner dos veces cin.get() para que se pueda ver el resultado??
Lo compile en VSE 2008 - proyecto vacio
Saludos
  #2 (permalink)  
Antiguo 17/09/2012, 07:35
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años, 6 meses
Puntos: 28
Respuesta: Pequeña duda

el problema no es que tengas que ponerlo 2 veces, sino que en C++ al imprimir el ultimo respultados de todas las operaciones que realizas siempre se cierra la consola, y al poner un cin.get() se queda esperando 1 ultima lectura, para no tener que hacer esto, usa
system("pause") y quita el ultimo cin.get(), y veras esta funcion deja la pantalla y no se cierra la consola.

s2
cronos
  #3 (permalink)  
Antiguo 17/09/2012, 19:15
 
Fecha de Ingreso: septiembre-2012
Ubicación: Lima
Mensajes: 46
Antigüedad: 12 años, 2 meses
Puntos: 4
Respuesta: Pequeña duda

ok gracias, pero en otros articulos que lei recomiendan no usar system("pause") para no sobrecargar el sistema o algo asi
  #4 (permalink)  
Antiguo 18/09/2012, 06:20
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: Pequeña duda

Cita:
Iniciado por pepon01 Ver Mensaje
ok gracias, pero en otros articulos que lei recomiendan no usar system("pause") para no sobrecargar el sistema o algo asi
es cierto, aca te dejo un articulo que acabo de encontrar al respecto, esta en ingles:

http://www.gidnetwork.com/b-61.html

y en tu programa, con una sola linea de cin.get() tendria que funcionar.

saludos
  #5 (permalink)  
Antiguo 22/09/2012, 20:40
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: Pequeña duda

Has de tener algo en el Buffer de Teclado. getchar en C, o cin.get(), toman lo que hay en el buffer. Limpialo con un bucle que revise si hay algo en el, o sea que pregunte si no es igual a EOF o igual a \n. De todas formas, system pause hace que tu programa solo funcione en Windows. No es recomendable.

Etiquetas: int, pequeña, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.