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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 61



Ver Perfil
Problema del compilador?!?!
« en: 8 Noviembre 2011, 03:07 am »

Buenos días a todos, :D hace tiempo que no entraba al foro, pues aquí abri un tema por que no se que ondina con este compilador.
Soy nuevo en C, pero no en la programación, aun así no se por queee, quizas sea el compilador que no incluya el stdio.h o no se que sera aunque no creo que sea eso, no es la primera vez que me pasa. Yo estoy aprendiendo C y me baje el Dev C++ por recomendaciones que lei en la web, pero miren este es el codigo:

Código
  1. #Include <stdio.h>
  2.  
  3. int x, y;
  4.  
  5. main()
  6. {
  7.      printf("\n Input an integer value for x: ");
  8.      scanf("%d", &x);
  9.      printf("\n Input an intenger value for y: ");
  10.      scanf("%d", &y);
  11.  
  12.      if (x == y)
  13.         printf("x is equal to y");
  14.      if (x < y)    
  15.         printf("x is smaller than y");
  16.      if (x > y)
  17.         printf("x is greater than y");
  18.  
  19.      scanf("%d");
  20.      return 0;
  21. }

si es el compilador, alguien no me recomienda otro bueno? que sirva para C?

No es la primera vez que me pasa, como ya dije. Este code esta en el libro aprender a programar en C en 21 días (muy bueno en mi opinión)

Desde ya muchas gracias  ;-)

PD: Tampoco se porque ahora que postie en el foro, aquí aparecieron esos numeros raros antes del enunciado... :/


« Última modificación: 8 Noviembre 2011, 03:09 am por Chico_Maravilla » En línea

pucheto

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Problema del compilador?!?!
« Respuesta #1 en: 8 Noviembre 2011, 03:16 am »

#Include es con minuscula.... #include

La culpa practicamente nunca es del compilador...


En línea

ChicoMaravilla

Desconectado Desconectado

Mensajes: 61



Ver Perfil
Re: Problema del compilador?!?!
« Respuesta #2 en: 8 Noviembre 2011, 03:31 am »

correcto, era eso :) un despiste mio  :rolleyes:, gracias por la respuesta inmediata

Saludos
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema del compilador?!?!
« Respuesta #3 en: 8 Noviembre 2011, 04:19 am »

Si ese programa lo copiaste tal cual de ese libro mejor cambia a otro ya que tiene un error y varios "detallitos". El tema obligatorio a leer en este caso es [Libros/Papers] C/C++.

El error se encuentra en la ultima llamada a scanf, se deben pasar dos argumentos pero la función solo recibe uno:
Código
  1. scanf("%d");

Los detallitos son la definición de la función "main" (en C99 no se puede omitir el tipo) y las llamadas a printf: las tres primeras, al no terminar con el carácter '\n', no dan garantías de que el bufer de la salida estándar se vacié y las tres ultimas se pueden remplazar con llamadas a "puts".

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
ChicoMaravilla

Desconectado Desconectado

Mensajes: 61



Ver Perfil
Re: Problema del compilador?!?!
« Respuesta #4 en: 8 Noviembre 2011, 12:59 pm »

Si ese programa lo copiaste tal cual de ese libro mejor cambia a otro ya que tiene un error y varios "detallitos". El tema obligatorio a leer en este caso es [Libros/Papers] C/C++.

El error se encuentra en la ultima llamada a scanf, se deben pasar dos argumentos pero la función solo recibe uno:
Código
  1. scanf("%d");

Los detallitos son la definición de la función "main" (en C99 no se puede omitir el tipo) y las llamadas a printf: las tres primeras, al no terminar con el carácter '\n', no dan garantías de que el bufer de la salida estándar se vacié y las tres ultimas se pueden remplazar con llamadas a "puts".

Un saludo

 :o
ese scanf lo agregué yo al final, por que no tenía manera de que se quedara quieto  :xD, (mis conocimientos de C son muy limitados por ahora), en cuanto a el resto si, esta igual.

no entiendo eso de los printf, pues el /n, tengo entendido que salta de renglón, y si iría al final, mostraría en el siguiente renglón el scanf  :D
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema del compilador?!?!
« Respuesta #5 en: 9 Noviembre 2011, 02:02 am »

no entiendo eso de los printf, pues el /n, tengo entendido que salta de renglón, y si iría al final, mostraría en el siguiente renglón el scanf

El problema al llamar a printf de esta forma:
Código
  1. printf("\n Input an integer value for x: ");
  2. scanf("%d", &x);
Es que no tenemos garantizado que la cadena "\n Input an integer value for x: " se imprima inmediatamente en la salida estándar (puede quedarse en su bufer).

Para tener esa seguridad se debe cumplir uno de tres escenarios:

A) El bufer de la salida estándar se llena.
B) La secuencia de caracteres a imprimir termina con '\n'.
C) Se indica explícitamente que debe vaciarse el bufer.

El primer caso no lo controlamos así que mejor nos olvidamos de el.

El segundo caso se consigue al llamar a la función así:
Código
  1. printf("\n Input an integer value for x: \n");
Pero como no se formatea valor alguno se puede sustituir esa función con "puts" generando el mismo efecto (ella imprime automáticamente el '\n' después de la cadena indicada):
Código
  1. puts("\n Input an integer value for x: ");

El tercer caso se consigue llamando a la función "fflush" para que vacie el bufer del stream indicado como argumento (stdout es la salida estándar):
Código
  1. printf("Input an integer value for x: ");
  2. fflush(stdout);

Por ultimo lo subjetivo (cuestión de estilo): cuando uno escribe no pasa al siguiente renglón y empieza a escribir ahí así nada mas.

En su lugar uno escribe hasta alcanzar el final del renglón y solo entonces pasa al siguiente. Esa es la idea de tener el '\n' al final de la cadena (y no al principio).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con compilador visual basic 6
Programación Visual Basic
|[creek]| 2 2,597 Último mensaje 15 Mayo 2005, 03:10 am
por |[creek]|
Problema con el control de compilador de cobein
Programación Visual Basic
aaronduran2 4 1,386 Último mensaje 28 Julio 2008, 15:50 pm
por aaronduran2
Problema con "Compilador" Batch
Programación C/C++
kworld 0 1,060 Último mensaje 24 Mayo 2010, 23:31 pm
por kworld
Problema con el compilador
Programación C/C++
Sputnik_ 5 2,608 Último mensaje 1 Diciembre 2012, 03:08 am
por rir3760
Problema con el Compilador borland_c
Programación C/C++
elchapa79 3 1,570 Último mensaje 29 Marzo 2013, 04:26 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines