[ Foro de C ]

Podéis explicarme este código?

09-Feb-2023 08:48
Charlie B M
2 Respuestas

Se supone que siempre tiene que salir el mismo número del parámetro.

#include <unistd.h>

void ft_putchar(char c)
{
write(1, &c, 1);
}

void ft_putnbr(int nb)
{
if (nb == -2147483648)
{
ft_putnbr(nb / 10);
ft_putchar('8');
}
else if (nb < 0)
{
ft_putchar('-');
ft_putnbr(-nb);
}
else
{
if (nb > 9)
ft_putnbr(nb / 10);
ft_putchar('0' + nb % 10);
}
}


09-Feb-2023 18:47
Invitado (juan)

hola charlie

basicamente imprime un int por pantalla sin retorno de carro
https://www.online-ide.com/O8yHrGUEwY

saludos ;-)


14-Mar-2023 21:35
Invitado (Alejandro Andrade)

Este código es una implementación de la función ft_putnbr, que imprime un número entero en la salida estándar (la consola).

La función ft_putnbr toma un argumento entero nb y tiene tres casos:

1. Si nb es el valor más negativo posible para un entero (es decir, -2147483648), entonces llama recursivamente a ft_putnbr con nb / 10 para imprimir todos los dígitos menos el último, y luego imprime el último dígito (que siempre será 8 para este caso especial).
2. Si nb es negativo pero no el valor más negativo posible, entonces imprime un signo de menos y llama recursivamente a ft_putnbr con -nb para imprimir el número como un valor positivo.
3. Si nb es positivo, entonces llama recursivamente a ft_putnbr con nb / 10 para imprimir todos los dígitos menos el último, y luego imprime el último dígito.

En todos los casos, ft_putchar se usa para imprimir caracteres individuales en la salida estándar. La función ft_putchar toma un carácter c y llama a la función write de la biblioteca estándar de C para escribir ese carácter en la salida estándar.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)