Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NowhereMan en 10 Julio 2011, 00:00 am



Título: evitar que se cierre programa en C
Publicado por: NowhereMan en 10 Julio 2011, 00:00 am
estoy aprendiendo c y me pregunto como mantener abierto un programa, lei que se logra utilizando getchar() pero no me funciona  :-\


Título: Re: evitar que se cierre programa en C
Publicado por: BlackZeroX en 10 Julio 2011, 00:02 am
.
has un:

fflush();  // stdio o a stdin

antes del getchar();

Dulces Lunas!ˇ.


Título: Re: evitar que se cierre programa en C
Publicado por: leogtz en 10 Julio 2011, 00:07 am
Código
  1. while(getchar() != '\n');


Título: Re: evitar que se cierre programa en C
Publicado por: rir3760 en 10 Julio 2011, 00:32 am
has un:

fflush();  // stdio o a stdin

antes del getchar();
Si te refieres a utilizar "fflush(stdin)" antes de la llamada a "getchar()" no es una buena idea ya que el estándar de C define la funcion "fflush" solo para streams de salida (stdin es uno de entrada).


Código
  1. while(getchar() != '\n');
El problema con ese bucle es, si por cualquier razón la función retorna EOF, se cae en un bucle infinito. En todo caso:
Código
  1. int ch;
  2.  
  3. /* ... */
  4.  
  5. while ((ch = getchar()) != EOF && ch != '\n')
  6.   ;


La mejor solución es utilizar un IDE que soporte la generación automática de una pausa cuando se ejecuta una aplicación de consola, de todos los disponibles el único que recuerdo no la tiene es Dev-C++. Eso o ejecutar la aplicación desde el interprete de comandos disponible (cmd.exe, bash, etc.).

Un saludo


Título: Re: evitar que se cierre programa en C
Publicado por: leogtz en 10 Julio 2011, 00:34 am
Tienes razón, rir3760, recuerdo que esa solución la diste en el otro foro pero no la recordaba.  :rolleyes:


Título: Re: evitar que se cierre programa en C
Publicado por: BlackZeroX en 10 Julio 2011, 00:41 am
@rir3760

Si me referia a los stream de salida y entrada si es uqe hacia algo mas antes del getchar(); ( printf(); u otra cosa... ) de igual manera no sabia eso del stdin.

Dulces Lunas!ˇ.