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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al empezar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al empezar  (Leído 2,886 veces)
stev3

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Problema al empezar
« 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;
}


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problema al empezar
« Respuesta #1 en: 6 Febrero 2014, 19:29 pm »

Qué error?


En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Problema al empezar
« Respuesta #2 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.
En línea

Un byte a la izquierda.
stev3

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Problema al empezar
« Respuesta #3 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
En línea

stev3

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Problema al empezar
« Respuesta #4 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
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    printf ("Hola Mundo");
  6.    getchar();
  7.    return 0;
  8. }

Saludos

Gracias por el aviso ahora lo cambio ;)
En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Problema al empezar
« Respuesta #5 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 ......
« Última modificación: 7 Febrero 2014, 01:44 am por yoel_alejandro » En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
por donde empezar? « 1 2 »
Diseño Gráfico
Wenzel. 11 6,817 Último mensaje 13 Marzo 2004, 20:21 pm
por Accolon
Empezar con ASM? « 1 2 »
ASM
anonimo12121 11 9,264 Último mensaje 8 Abril 2010, 22:00 pm
por Debci
Empezar aprendiendo y surgimiento de problema. 2 en 1
Hacking
Sacesaber 3 2,993 Último mensaje 8 Enero 2013, 12:01 pm
por kaiserr
Empezar
Programación General
Mariusito 3 2,089 Último mensaje 14 Agosto 2013, 17:40 pm
por GenR_18
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines