[C con Clase] alguien me puede ayudar?

Sergio sbgaster en gmail.com
Vie Jun 8 19:42:59 CEST 2007


Te contesta un nobato no lo olvides:

Creo que tiene que ver con que en tus dos primeras peticiones pides numeros
y apesar de que scanf coloca un retorno de carro de forma automatica no
descarga el buffer intermedio pero cuando pides un caracter (el retorno de
carro se considera un caracter) entonces si descarga el buffer intermedio
probocando el error.


Solo tienes que hacer la prueba coloca 7 peticiones de numeros con scanf y
veras  que no falla pero si la octaba es una peticion de un caracter salta
el error (descarga el buffer).

Sobre por que funciona el truco del espacio no te se decir recuerdo que lo
vi en un foro hace algun tiempo pero por desgracia el foro desaparecio y la
explicacion tambien.

Saludos



El día 8/06/07, fabio german voigt <fabiogvoigt en yahoo.com.ar> escribió:
>
> Muchas gracias por tu ayuda, tenes razón así funciona. Ahora la pregunta
> que me surge de esto es cual es la regla que rige esto, es decir, que tiene
> que ver este espacio entre el paréntesis y %, y porque en otros casos esto
> pasa y en otros no?. De nuevo gracias
>
> **
>
> No estoy seguro por que soy novato con todo esto pero creo que es una
> cuestion de buffer, seguro que alguien con mas conocimiento nos dara la
> respuesta correcta, de momento te digo que poniendo un espacio entre las
> comillas y %c funciona.
>
> scanf(" %c",&cont);
>
>
>
> El día 7/06/07, fabio german voigt <fabiogvoigt en yahoo.com.ar > escribió:
> >
> > por favor alguien me puede decir porque se ejecuta una sola vez este
> > programa, es decir el ciclo "do -while" no se ejecuta hasta que el usuario
> > ingresa el "n" para no seguir calculando potencias. pasa que calcula una
> > poencia, luego sale la pregunta de si quiero calcular mas pero a
> > continuacion esta la leyenda de "apriete una tecla para continuar" que
> > corresponde al system("pause") creo yo, y a apretar una tecla la pantalla de
> > ejecucion se sierra inmediatamente. muchas gracias.
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <math.h>
> > main()
> > {
> >   void exponente(float x, float n);
> >   float x, n;
> >   char cont;
> >   do
> >   {
> >      printf ("ingresar el numero: ");
> >      scanf ("%f", &x);
> >      printf("ingresar el exponente: ");
> >      scanf("%f",&n);
> >      exponente(x,n);
> >      printf("\n calcula otra potencia?, s/n: ");
> >      scanf("%c",&cont);
> >    } while (toupper(cont)== 'S');
> >   system("PAUSE");
> >   return;
> >
> > }
> > void exponente(float x, float n)
> > {
> >      float aux;
> >      if (x==0 && n==0) printf("indeterminado");
> >      else if (x!=0 && n==0) printf("el resultado es 1");
> >           else if (x!=0 && n==1) printf("%f",x);
> >                else
> >                   {
> >                    aux= n*log(x);
> >                    printf("%f",exp(aux));
> >                    }
> > }
> >
> >  ------------------------------
> > *Preguntá. Respondé. Descubrí.*
> > Todo lo que querías saber, y lo que ni imaginabas,
> > está en *Yahoo! Respuestas* (Beta).
> > *Probalo ya! <http://ar.answers.yahoo.com/>*
> >
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> >
> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> >
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> ------------------------------
> *Preguntá. Respondé. Descubrí.*
> Todo lo que querías saber, y lo que ni imaginabas,
> está en *Yahoo! Respuestas* (Beta).
> *¡Probalo ya! <http://ar.answers.yahoo.com>*
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070608/31098544/attachment.html>


Más información sobre la lista de distribución Cconclase