Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: lbellone en 07 de Mayo 2017, 01:57

Título: C printf scanf isalpha saber si usuario introduce caracter consola lenguajeC
Publicado por: lbellone en 07 de Mayo 2017, 01:57
Hola gente de la comunidad tengo un problema con scanf.

Cuando hago esto funciona:

Código: [Seleccionar]
#include <stdio.h>
#include <ctype.h>

int main (){

float a='b';
int escaracter=0,terminar=0;


    escaracter=(int)a;
    terminar=isalpha(escaracter);
    printf("terminar=%d\nescaracter=%d\na=%f\n",terminar,escaracter,a);
    if(terminar!=0){
        printf("ES CARACTER\n");
        return 1;
                    }
    printf("NO ES CARACTER\n");
return 0;
}

Pero cuando hago esto no:

Código: [Seleccionar]
#include <stdio.h>
#include <ctype.h>

int main (){

float a=0;
int escaracter=0,terminar=0;
printf("Ingrese NUMERO o CARACTER\n");   
scanf("%f",&a);
    escaracter=(int)a;
    terminar=isalpha(escaracter);
    printf("terminar=%d\nescaracter=%d\na=%f\n",terminar,escaracter,a);
    if(terminar!=0){
        printf("ES CARACTER\n");
        return 1;
                    }
    printf("NO ES CARACTER\n");
return 0;
}
No entiendo porque scaf("%f",&a); si le pongo un caracter no me guarda nada, me guarda cero, como si ubiera ingresado un cero (0).
Porfavor si me puede ayudar, muchas gracias.
Título: Re:C printf scanf isalpha saber si usuario introduce caracter consola lenguajeC
Publicado por: Alex Rodríguez en 18 de Junio 2017, 18:36
Hola lbellone, parece que estás haciendo un uso extraño de los conceptos de C, si le pones un caracter no te guarda nada puesto que has declarado que la variable es de tipo float que es un tipo numérico decimal

Te recomiendo revisar los conceptos, explicados en el curso C desde cero disponible en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Saludos