Problema de salida con C

Hola! tengo un problema con devC++, al compilar y ejecutar el codigo la terminal se abre y se cierra sola automaticamente, para ejecutar el codigo debo hacerlo manualmente desde la terminal, vi alguna solucion, la cual es poner dentro de mi codigo la linea system(“pause”); para tener la oportunidad de que la terminal no se cierre, hay alguna forma de solucionar este problema sin tener que escribir system(“pause”); siempre?

image

El programa dura lo que tiene que durar. Una vez que se termina, se cierra.
Podes hacer que dure más, para que no se cierre tan rápido.
Sea con ese system, o con un bucle, como el bucle eterno:

for(;;){
// bucle eterno
// Si, en la condición esta ese ;;
// Así se hace ese bucle
}

Que el programa se cierre esta bien y es el comportamiento esperado, no es ningún error.

Normalmente, al ejecutar un programa a través de la terminal, tienes tu shell, ya sea bash, zsh, etc, en Linux, y cmd o powershell en windows, este shell, o interprete de comandos, llama a ejecutar un programa, este hace lo que tenga que hacer, y al cerrarse, regresa al shell. La razón por la que la terminal no se cierra en este caso es porque aunque el programa se haya terminado de ejecutar, aun esta el interprete de comandos activo, en espera de ejecutar otra instrucción.

Si quieres evitar que se cierre tu terminal la cosa es bien simple, ejecuta tu programa con ayuda de un shell. Tu programa se va a cerrar (como debe ser), pero la terminal no, y puedes revisar lo que tengas que revisar de la salida de tu programa.

4 Me gusta

hace poco empece a aprender C, es bueno saber que asi es la forma en la que se comporta, gracias!!!

Te recomendaría ejecutar el programa en una terminal y no directamente como aplicación gráfica, así podrás identificar los errores.

También que emplees un compilador como gcc (aunque yo prefiero tcc) que suelen botar los errores al momento de compilar. O si tienes un editor como vim/neovim, el linter te indica los errores en tiempo real.

Otras recomendaciones seria.

  • Emplear un makefile.
  • Dar una vista a las convenciones del kernel de linux o suckless para la escritura del código.

C es de mis lenguaces favoritos y hay mucha información, no dudes en preguntar.

1 me gusta

Mi recomendación es que dejes ese sistema operativo ventanuco de Microsuave e instales un sistema GNU/Linux…

¿Qué tiene que ver?

Habla desde otro punto, cómo lo buenas que son las herramientas gcc, Makefile, cmake, gdb, cgdb (debuger).

Y, lo fácil que es instalarlos en un sistema GNU/Linux (desde el gestor de paquetes), mientras lo difícil que es desde Windows (instalando Msys2, y ejecutando muchos comandos de la página (usa el gestor pacman, el mismo que Arch…)).

Instalar el sistema operativo GNU con el kernel Linux, suele ser la respuesta para todas las dificultades que enfrentará un programador. Puesto que GNU siendo un sistema operativo libre, todo el conocimiento está disponible ante ti, puesto que es software libre. Un sistema operativo desarrollado por personas normales, como tu que quieren aprender cómo funcionan los programas que ejecutan.

2 Me gusta