Limitado longitud en lectura de datos

Dudas sobre el C/C++ en general
Responder
Mensaje
Autor
Gtrx360
Mensajes: 1
Registrado: 13/06/2019 8:44 am

Limitado longitud en lectura de datos

#1 Mensaje por Gtrx360 » 13/06/2019 9:03 am

Necesito su ayuda. :idea: :?:
Estoy trabajando en un proyecto pero necesito que al momento de leer un dato tipo long, limite la longitud que se puede ingresar y que si llega al limite de la longitud deje de leer datos, deje de reconocer los números aunque el usuario siga escribiendo.

Avatar de Usuario
untio
Mensajes: 389
Registrado: 17/09/2008 9:35 am
Ubicación: Provincia de Almería
Contactar:

Re: Limitado longitud en lectura de datos

#2 Mensaje por untio » 13/06/2019 2:33 pm

Perdona que me entrometa.

scanf devuelve el número de variables leidas correctamente. Si intentas leer un int de treinta y dos bits y pones un número mayor, te devolverá cero en lugar de uno.

Lo mismo supongo que pasará con un entero largo. Y también te devolverá cero si entras una palabra.

Recuerda que después de leer del buffer de entrada, hay que vaciarlo haciendo getchar hasta que getchar devuelva \n

Perdóname si estoy equivocado. No puedo ponerte un ejemplo por la dichosa ciática. Estoy escribiendo desde el móvil

Un saludo

mollok
Mensajes: 492
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Limitado longitud en lectura de datos

#3 Mensaje por mollok » 14/06/2019 5:44 am

Simplemente le dices a scanf cuantos números quieres adquirir. Por ejemplo, para sólo tener en cuenta los tres primeros que el usuario ha escrito:

Código: Seleccionar todo

#include <stdio.h>

int main() {
    long n;

    scanf("%3ld", &n);
    printf("%ld", n);
    // Aquí debes vaciar el búffer de entrada porque todos los números no tomados siguen en él
}

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados