我想这个递归函数打印出LONG_MAX的(包含在limits.h中)八进制值LONG_MAX八进制值:如何获得
void ft_get_nbr_base(long int nb, char *base, int i)
{
int size_base;
int size_nb;
char *str;
size_base = ft_strlen(base);
if (nb >= size_base)
ft_get_nbr_base(nb/size_base, base, i);
if (i == 1)
ft_putchar(base[(long int)(nb % size_base)]);
if (i == 2)
ft_putchar(ft_toupper(base[(long int)(nb % size_base)]));
}
所以我这样称呼它:ft_get_nbr_base(LONG_MAX ,“”,1);
结果是:777777777777777777777 而我做printf(“%o”,LONG_MAX),我得到37777777777
。你能否向我解释如何得到与printf相同的结果,以及它为什么显示这种差异?由于
你为什么这样做? –
我记录了printf函数 – zakk8889
代码'printf(“%o”,LONG_MAX)'应该从编译器中产生一个警告。 – user3386109