Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: talekliaran en 5 Mayo 2012, 15:05 pm



Título: Duda de un novato
Publicado por: talekliaran en 5 Mayo 2012, 15:05 pm
Hola a todos, espero no molestar a nadie con mi pregunta. si no os importa podriais decirme ¿donde cometo el fallo en este programa tan simple?


    #include <stdio.h>

    int main( void )

    {

      int edad;

      printf( "Escribe su edad,\n" );
      scanf( "%d", &edad);
      printf( "su edad: %d", edad );

      return 0;

    }


Título: Re: Duda de un novato
Publicado por: Kasswed en 5 Mayo 2012, 15:07 pm
en ningún sitio


Título: Re: Duda de un novato
Publicado por: Runex en 5 Mayo 2012, 15:36 pm
Hola a todos, espero no molestar a nadie con mi pregunta. si no os importa podriais decirme ¿donde cometo el fallo en este programa tan simple?


    #include <stdio.h>

    int main( void )

    {

      int edad;

      printf( "Escribe su edad,\n" );
      scanf( "%d", &edad);
      printf( "su edad: %d", edad );

      return 0;

    }
int main(void) ?
Es la primera vez que veo eso :S, no creo que tenga la culpa del error, pero ya te digo que no hay fallos :S

Un saludo :)


Título: Re: Duda de un novato
Publicado por: diegoCmC en 5 Mayo 2012, 16:01 pm
No hay ningún error, pero si lo planteas sera por que no veras el mensaje
Citar
su edad: XX
o al menos eso supongo xD, si es asi añade "system("pause");" al final

Código:
printf( "su edad: %d", edad );

system("pause");

return 0;


Título: Re: Duda de un novato
Publicado por: STANHMAL en 5 Mayo 2012, 16:05 pm
No hay ningún error, pero si lo planteas sera por que no veras el mensaje o al menos eso supongo xD, si es asi añade "system("pause");" al final

Código:
printf( "su edad: %d", edad );

system("pause");

return 0;

algo que te falto mencionar, y es que para usar el system("pause"); se debe de incluir la biblioteca stdlib.h

$4!u2


Título: Re: Duda de un novato
Publicado por: talekliaran en 5 Mayo 2012, 16:34 pm
Muchas gracias por la rapidez de vuestras respuesta. El mensaje que me da es el siguiente

talek@ubuntu11:~$ gcc -Wall -O2 -o prueba4 prueba4.c
prueba4.c: In function ‘main’:
prueba4.c:14:12: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result

Para ejecutarlo lo pongo así porque leí que Wall es para que te muestre todos los warning. El -O2 es para optimización de 32bits y el -o ya no me acuerdo. El caso es que las pruebas básicas que he hecho hasta ahora no me daba ningún problema por lo que entendí que ejecutaba bien todos los programas con este enunciado. Pero por lo que he probado si lo ejecuto así:

talek@ubuntu11:~$ gcc  prueba4.c
talek@ubuntu11:~$

Funciona perfectamente. Y se soluciona el único problema que veo es que no puedo definir el archivo resultante ME SALE SIEMPRE: A.OUT y me gustaría poder definirlo desde el principio. Muchas gracias.

Gracias a todos, estoy aprendiendo poco a poco con éste tutorial :
http://wiki.cabal.mx/wiki/Curso_de_Programaci%C3%B3n_en_C/Prog23
Concretamente en esta pagina ponen el ejemplo del que hablo y a ellos no le salen error. :-S
Me recomendáis seguir con él u otro tutorial? Me gusta que tenga vídeos explicándolos.


Título: Re: Duda de un novato
Publicado por: STANHMAL en 5 Mayo 2012, 17:33 pm
[stanhmal@OpenSource]$ gcc -Wall -O2 -o sdf sdf.c
[stanhmal@OpenSource]$

Me compila perfectamente.



Citar
talek@ubuntu11:~$ gcc  prueba4.c
talek@ubuntu11:~$

Siempre que no le especifiques un nombre de salida, te lo llamara a.out, prueba así:

Código:
gcc  prueba4.c -o prueba4

$4!u2


Título: Re: Duda de un novato
Publicado por: durasno en 5 Mayo 2012, 17:59 pm
Hola! el -o es para especificar el nombre del ejecutable.... La verdad no vi bien el curso pero no me da mucha confianza, yo te recomendaria un libro:
Programacion en C Metodologia, Algoritmos y Estructurade datos

Es muy completo y explica bien

Saludos


Título: Re: Duda de un novato
Publicado por: talekliaran en 5 Mayo 2012, 19:11 pm
     Gracias a todos por vuestras respuestas ;D, me han ayudado la verdad. Así he sabido que escribía mal
el "O2" pues tenía que escribir "o2" (la o minúscula) si no me salía el error mencionado.  Terminaré de mirar la web con la que estoy y empezaré con el libro que me comentas.  ;-).