Ver Mensaje Individual
  #11 (permalink)  
Antiguo 16/05/2014, 14:32
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error de buffer al usar scanf

TriN puedes usar también este código de Drewermerc, que tan solo le hecho esta simple modificación:

Código C:
Ver original
  1. #include <stdio.h>
  2.     #include <stdlib.h>
  3.     #include <string.h>
  4.     #include <ctype.h>  
  5. int main ()
  6. {
  7.     char c[50];
  8.     int num, i, f;
  9.     printf("ingresa un valor\n");
  10.     fgets(c, 50,  stdin);
  11.     num = strlen(c);
  12.     int temp;
  13.     for (i = 0; i < num-1 ; i++)
  14.     {
  15.        if (isdigit(c[i]) !=0)
  16.             printf("numero %c\n", c[i]);
  17.             temp += c[i]            
  18.         else
  19.             temp = 0;
  20.             break;
  21.     }
  22.  
  23.     return 0;
  24. }

ahí declaramos la variable temp de tipo int, luego la variable toma el valor de cada caracter en caso que sea numérico, luego comparas que la variable temp no sea igual a 0, en el caso que si sea 0, entónces es porque hay una letra u otro caracter en la cadena y el programa detendrá el bucle y le dará el valor 0 a la variable temp, al ser 0 su valor, no se podrá avanzar con el programa, ahí tienes que ver que es lo que debes hacer si no ingresan un número.
Con 0 podrás saber que lo que ingresó el usuario no es un número.