Título: Problema al empezar Publicado por: stev3 en 6 Febrero 2014, 19:27 pm Hoy e decidido empezar con c++ este es el código que cree:
#include <stdio.h> int main() { printf ("Hola Mundo"); return 0; } El problema es que cuando intento correrlo se me abre y cierra muy rápido. ¿Como puedo solucionarlo? P.D: Ya probé así y me da error en el system: #include <stdio.h> int main() { printf ("Hola Mundo"); system ("PAUSE"); return 0; } Título: Re: Problema al empezar Publicado por: ivancea96 en 6 Febrero 2014, 19:29 pm Qué error?
Título: Re: Problema al empezar Publicado por: fary en 6 Febrero 2014, 19:36 pm system es una función que esta en stdlib.h, incluye esa librería y se acaba el problema.
Título: Re: Problema al empezar Publicado por: stev3 en 6 Febrero 2014, 19:41 pm system es una función que esta en stdlib.h, incluye esa librería y se acaba el problema. Joder que retrasado soy pensaba que ya la incluyera xD Título: Re: Problema al empezar Publicado por: stev3 en 6 Febrero 2014, 19:42 pm Lo recomendable seria no usar la funcion system, ademas de depender del sistema, también hará que tu programa tenga futuros errores "tontos" por decirlo de alguna forma, y eso dará lugar a vulnerabilidades inesperadas. En vez de usar system("pause"); usa getchar(); de la libreria stdio.h o fstream si usas C++ Código
Saludos Gracias por el aviso ahora lo cambio ;) Título: Re: Problema al empezar Publicado por: Yoel Alejandro en 7 Febrero 2014, 01:42 am Sí, efectivamente la función system() está incluida en la biblioteca <stdlib.h>, que es la biblioteca de utilerías generales de C.
Con el tiempo terminarás memorizando cuáles funciones van con cuáles bibliotecas. En general se requieren mínimo dos: <stdlib.h> y <stdio.h>. La primera contiene a system(), además de otras importantes como malloc(), calloc(), realloc(), y free(). La segunda es para "input-output", es decir maneja las funciones de entrada/salida. Contiene printf(), scanf(), read(), write(), etc. Otras bibliotecas importantes son <string.h> para cadenas, <time.h> para manejar fecha y hora y <math.h> para funciones matemáticas. Esto por mencionar algunas. Ahora, en cuanto a system() considera que esta función lo que hace es pasar su cadena argumento al procesador de comandos del Sistema Operativo, como lo es cmd en caso de Windows, o bash en caso de Linux. Es como si escribieras ese comando en la consola, pues. Esto significa que el comportamiento de la función será absolutamente dependiente del sistema operativo, y por supuesto las sentencias de uno pueden no funcionar en el otro. Por ejemplo, si quieres listas los ficheros dentro del directorio actual debes escribir Código: system("dir"); en Windows, mientras: Código: system("ls"); en Linux y sistemas UNIX. Por eso no se recomienda system, ya que hará el programa no portable. Si lo que quieres es una simple pausa usa, como te han recomendado, la función estándar getchar() de <stdio.h>. Ojo, que no es getch(), ni tampoco getche(), !!!!!! La razón por la que se haya tan difundido el bendito system("pause") es que muchos profesores y academias no enseñan el "verdadero" C, normado por los comités ANSI e ISO/IEC, sino la versión de C de Borland, o la de Microsoft Visual C++ que no son estándares oficiales sino versiones COMERCIALES de ciertas compañías. Pero se tú un buen estudiante, y aprende el C "académico", o sea el verdadero y hazlo así desde el principio ;) ..... Yoel ...... |