evitar que se cierre programa en C

Iniciado por NowhereMan, 10 Julio 2011, 00:00 AM

0 Miembros y 1 Visitante están viendo este tema.

NowhereMan

estoy aprendiendo c y me pregunto como mantener abierto un programa, lei que se logra utilizando getchar() pero no me funciona  :-\

BlackZeroX

.
has un:

fflush();  // stdio o a stdin

antes del getchar();

Dulces Lunas!¡.
The Dark Shadow is my passion.

leogtz

while(getchar() != '\n');
getchar();
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

rir3760

Cita de: BlackZeroX?????? en 10 Julio 2011, 00:02 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).


Cita de: Leo Gutiérrez. en 10 Julio 2011, 00:07 AM
while(getchar() != '\n');
getchar();
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:
int ch;

/* ... */

while ((ch = getchar()) != EOF && ch != '\n')
   ;



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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

leogtz

Tienes razón, rir3760, recuerdo que esa solución la diste en el otro foro pero no la recordaba.  :rolleyes:
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

BlackZeroX

@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!¡.
The Dark Shadow is my passion.