elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  evitar que se cierre programa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: evitar que se cierre programa en C  (Leído 9,249 veces)
NowhereMan

Desconectado Desconectado

Mensajes: 24


Ver Perfil
evitar que se cierre programa en C
« 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  :-\


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: evitar que se cierre programa en C
« Respuesta #1 en: 10 Julio 2011, 00:02 am »

.
has un:

fflush();  // stdio o a stdin

antes del getchar();

Dulces Lunas!¡.


En línea

The Dark Shadow is my passion.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: evitar que se cierre programa en C
« Respuesta #2 en: 10 Julio 2011, 00:07 am »

Código
  1. while(getchar() != '\n');
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: evitar que se cierre programa en C
« Respuesta #3 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
En línea

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
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: evitar que se cierre programa en C
« Respuesta #4 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:
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: evitar que se cierre programa en C
« Respuesta #5 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!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines