[ Foro de C ]
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);
}
}
hola charlie
basicamente imprime un int por pantalla sin retorno de carro
https://www.online-ide.com/O8yHrGUEwY
saludos ;-)
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.)