elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 12:54  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux
| | |-+  Funcio Getchar();
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Funcio Getchar();  (Leído 782 veces)
Niara

Desconectado Desconectado

Mensajes: 7


Quit isn't an option...


Ver Perfil
Funcio Getchar();
« en: 6 Febrero 2012, 19:23 »

Hola, estoy programando en C con el compilador gcc pero, trato d hacer una repeticion do-while y cuando ingreso el caracter para continuar , el programa me bota...
#include <stdio.h>
main()
int x, suma, R;
char o;
printf("Este programa suma los digitos de un numero iterativamente.\n");
do

{
printf("Ingrese un numero:\n");
scanf("%d", &x);
suma=0;
while (x>0);
{
R=x%10;
suma=suma+R;
x=x/10;
}
printf("La suma de sus digitos es: %d\n", suma);
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();
getchar();  /*AQUI ES EL PROBLEMA*/
}
while(o=='s'||o=='S');
}


En línea

Sino te esfuerzas hasta el maximo como sabras donde esta tu limite..
Seaworth

Desconectado Desconectado

Mensajes: 113


Ver Perfil
Re: Funcio Getchar();
« Respuesta #1 en: 6 Febrero 2012, 19:29 »

¿Por qué pones 'getchar()' dos veces?

Código:
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();                   
getchar();  /*AQUI ES EL PROBLEMA*/

¿No bastaría con una vez?


En línea
dato000


Desconectado Desconectado

Mensajes: 614


Estudiando...o se supone...


Ver Perfil
Re: Funcio Getchar();
« Respuesta #2 en: 6 Febrero 2012, 22:24 »

tenias un ";" después del "while" lo que hace que se quede en un bucle infinito, me sirvio de esta forma:

Código:
#include <stdio.h>
int main(){

    int x, suma, R;
    char o;

    printf("Este programa suma los digitos de un numero iterativamente.\n");
    do
    {
        printf("Ingrese un numero:\n");
        scanf("%d", &x);
        suma=0;


        while(x>0) // ===> Sin punto y coma " ; "
        {
            R=x%10;
            suma=suma+R;
            x=x/10;


        }
        printf("La suma de sus digitos es: %d\n", suma);
        printf("Deseas seguir ejecutando el programa S/N:");
        o=getchar();
        getchar();  /*AQUI ES EL PROBLEMA*/
    }while(o=='s'||o=='S');

    return 0;

}

suerte amigo.
En línea


Quien se le mide a darles un calvaso???
Dale al hentai - Mi_BloG: http://daleradioblog.blogspot.com/
vertexSymphony


Desconectado Desconectado

Mensajes: 2.150



Ver Perfil WWW
Re: Funcio Getchar();
« Respuesta #3 en: 7 Febrero 2012, 05:57 »

¿No bastaría con una vez?


http://linux.die.net/man/3/getchar

La tecla que tocas es un caracter ( 's' || 'S' ), getchar() bloquea hasta que tipeas un enter ... y el enter es otro caracter, que queda en el buffer ...

Saludos.
« Última modificación: 7 Febrero 2012, 05:58 por [Alex] » En línea

Mail/PGP/XMPP/D*
Código
gpg --recv-keys --keyserver pgp.mit.edu 0xCD21671D
Seaworth

Desconectado Desconectado

Mensajes: 113


Ver Perfil
Re: Funcio Getchar();
« Respuesta #4 en: 7 Febrero 2012, 15:25 »

http://linux.die.net/man/3/getchar

La tecla que tocas es un caracter ( 's' || 'S' ), getchar() bloquea hasta que tipeas un enter ... y el enter es otro caracter, que queda en el buffer ...

Saludos.

Ah, OK (tengo muy olvidado el C...).

Gracias, saludos.
En línea
Niara

Desconectado Desconectado

Mensajes: 7


Quit isn't an option...


Ver Perfil
Re: Funcio Getchar();
« Respuesta #5 en: 8 Febrero 2012, 15:57 »

tenias un ";" después del "while" lo que hace que se quede en un bucle infinito, me sirvio de esta forma:

Código:
#include <stdio.h>
int main(){

    int x, suma, R;
    char o;

    printf("Este programa suma los digitos de un numero iterativamente.\n");
    do
    {
        printf("Ingrese un numero:\n");
        scanf("%d", &x);
        suma=0;


        while(x>0) // ===> Sin punto y coma " ; "
        {
            R=x%10;
            suma=suma+R;
            x=x/10;


        }
        printf("La suma de sus digitos es: %d\n", suma);
        printf("Deseas seguir ejecutando el programa S/N:");
        o=getchar();
        getchar();  /*AQUI ES EL PROBLEMA*/
    }while(o=='s'||o=='S');

    return 0;

}

suerte amigo.
Lo que pasa esq el problema esta en el ciclo q no me deja correr si le pongo S, me saca del programa...  a por cierrto una aclaracion soy niña NO niño :D
En línea

Sino te esfuerzas hasta el maximo como sabras donde esta tu limite..
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con mi funcio LeerNoticia()
Desarrollo Web
SeniorX 1 315 Último mensaje 19 Diciembre 2005, 02:43
por SeniorX
Problema con la funcio fgets()
Programación C/C++
monchyrcg 7 1,110 Último mensaje 5 Marzo 2009, 17:56
por monchyrcg
problema con getchar()
Programación C/C++
juanigato 3 2,056 Último mensaje 13 Abril 2009, 02:10
por EagleOneRaptor
getchar() != EOF
Programación C/C++
Treppe 6 2,083 Último mensaje 20 Julio 2011, 21:48
por rir3760
ayuda con getchar
Programación C/C++
ometeotl 6 1,241 Último mensaje 10 Octubre 2011, 19:46
por ometeotl
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines