Soy un principiante de C. Ejecuto el programa C, pero la ventana se cierra demasiado rápido antes de que pueda ver algo. ¿Cómo puedo detener la ventana?¿Cómo pausar en C?
Respuesta
puede poner
getchar();
antes del retorno de la función principal. Eso esperará una entrada de caracteres antes de salir del programa.
Alternativamente, podría ejecutar su programa desde una línea de comando y la salida sería visible.
Supongo que está en Windows. En lugar de intentar ejecutar su programa haciendo doble clic en su icono o haciendo clic en un botón en su IDE, abra un símbolo del sistema, cd al directorio en el que se encuentra su programa y ejecútelo escribiendo su nombre en la línea de comando.
¿Es un programa de consola que se ejecuta en Windows? Si es así, ejecútelo desde una consola que ya ha abierto. es decir, ejecute "cmd", luego cambie a su directorio que tiene el .exe (usando el comando cd), luego escriba el nombre del exe. La ventana de tu consola permanecerá abierta.
Si está haciendo un programa de ventana de consola, puede usar el sistema ("pausa");
Eso depende. ¿En qué sistema operativo funciona? –
@JerryJeremiah dijo "ventanas". Creo que 'pause' también funciona en Linux y Mac. –
No funciona en ksh en mi RS6000, así que no creo que sea POSIX .... –
getch()
también se puede utilizar que se define en conio.h.
El programa de ejemplo se vería así:
#include <stdio.h>
#include <conio.h>
int main()
{
//your code
getch();
return 0;
}
getch()
espera para cualquier entrada de caracteres desde el teclado (no necesariamente tecla enter).
Esto es solo en Windows. Unix no tiene conio.h –
También puedes, simplemente utilizar system("pause");
Si desea simplemente retraso el cierre de la ventana sin tener que pulsar un botón en realidad (getchar()
método), puede simplemente usar el método sleep()
; toma la cantidad de segundos desea dormir como argumento.
#include <unistd.h>
// your code here
sleep(3); // sleep for 3 seconds
Referencias: sleep() manual
Buen trabajo me acordé de archivos por lotes de DOS. No necesita Getchar() en absoluto. Simplemente escriba el archivo por lotes para cambiar el directorio (cd) a la carpeta donde reside el programa. escriba el nombre del programa exe y en la siguiente línea escriba pausa. ejemplo:
cd\
wallpaper_calculator.exe pausa
En sistemas POSIX, la mejor solución parece utilizar:
#include <unistd.h>
pause();
Si el proceso recibe una señal cuyo efecto es terminarlo (normalmente escribiendo Ctrl + C en el terminal), luego pause
no devolverá un nd el proceso terminará efectivamente por esta señal.Un uso más avanzado es usar una función de captura de señal, llamada cuando se recibe la señal correspondiente, después de la cual regresa pause
, reanudando el proceso.
Nota: el uso de getchar()
no funcionará si se redirige la entrada estándar; de ahí esta solución más general.
Para Linux; getchar() es todo lo que necesitas.
Si está en Windows, revise lo siguiente, ¡es exactamente lo que necesita!
kbit (función
- kbhit()) función se utiliza para determinar si una tecla ha sido pulsada o no.
- Para usar kbhit() en los proramas C o C++, debe incluir el archivo de encabezado "conio.h".
Por ejemplo, vea cómo funciona en el siguiente programa;
//any_key.c
#include <stdio.h>
#include <conio.h>
int main(){
//code here
printf ("Press any key to continue . . .\n");
while (1) if (kbhit()) break;
//code here
return 0;
}
Cuando compilar y ejecutar el programa, this es lo que veo.
Sólo cuando el usuario presiona tan sólo una tecla del teclado, kbhit() retornos 1.
- 1. Cómo dormir o pausar un PThread en c en Linux
- 2. ¿Cómo puedo pausar en zsh?
- 3. ¿Cómo pausar usando DownloadManager?
- 4. cómo pausar/reanudar un hilo
- 5. Solaris GDB: ¿Cómo pausar la ejecución?
- 6. ¿Cómo pausar Eclipse en cualquier excepción?
- 7. Cómo pausar el tiempo en iOS Programación
- 8. Cómo pausar/reanudar descargas en iPhone (iOS)
- 9. cómo pausar y reanudar NSTimer en iphone
- 10. Pausar la ejecución de JavaScript en UIWebView
- 11. ¿Cómo pausar/reanudar cualquier proceso externo en Windows?
- 12. ¿Cómo pausar una llamada a setTimeout?
- 13. ¿cómo pausar y reanudar un temporizador?
- 14. Swing Timer, cómo pausar y reanudarlo?
- 15. ¿Cómo pausar una ejecución de vbscript?
- 16. ¿Cómo puedo pausar una NSOperation en un NSOperationQueue?
- 17. Cómo pausar programáticamente spotify cuando entra una llamada en skype
- 18. Pausar manualmente una aplicación en Android Phonegap
- 19. ¿Cómo pausar/suspender un hilo y luego continuar?
- 20. Forma correcta de pausar un System.Timers.Timer?
- 21. Pausar un boost :: thread por tiempo ilimitado
- 22. ¿Hay alguna manera de pausar una CABasicAnimation?
- 23. C#: ¿Cómo pausar el hilo y continuar cuando ocurre algún evento?
- 24. ¿Cómo pausar antes de desvanecer un elemento usando jQuery?
- 25. cómo pausar y reanudar un subproceso de vista de superficie
- 26. ¿Cómo pausar un NSThread hasta que se notifique?
- 27. Cómo pausar la ejecución mientras JDialog está abierto
- 28. Pausar una aplicación de Android con Phonegap
- 29. Usar MsgBox sin pausar la aplicación
- 30. ejecutar/pausar animación CSS con jQuery
Sí, entonces sólo tiene que pulsar una tecla para terminar el programa y cerrar la ventana. –
No, tendrá que presionar enter ... –
+1 para "ejecutar desde la línea de comandos", que es una habilidad que en estos momentos no existe. –