示例#1
0
文件: func2.c 项目: maafterchef/42_2
void	ft_get_size_spaces(t_infos *entry_list, int i, int j, int ret)
{
	static int	nb;
	int			k;
	int			tmp;

	if (!nb)
	{
		k = 0;
		while (k <= i)
		{
			if ((tmp = ft_digitlen(entry_list[k].size)) > nb)
				nb = tmp;
			k++;
		}
	}
	if (ret == 1)
		nb = 8;
	tmp = ft_digitlen(entry_list[j].size);
	while (tmp < nb + 2)
	{
		ft_putchar(' ');
		tmp++;
	}
	ft_putnbr(entry_list[j].size);
	ft_putchar(' ');
}
示例#2
0
文件: func2.c 项目: maafterchef/42_2
void	ft_get_link_spaces(t_infos *entry_list, int i, int j)
{
	static int	nb;
	int			k;
	int			tmp;

	if (!nb)
	{
		k = 0;
		while (k <= i)
		{
			if ((tmp = ft_digitlen(entry_list[k].nb_link)) > nb)
				nb = tmp;
			k++;
		}
	}
	tmp = ft_digitlen(entry_list[j].nb_link);
	while (tmp < nb + 2)
	{
		ft_putchar(' ');
		tmp++;
	}
	ft_putnbr(entry_list[j].nb_link);
	ft_putchar(' ');
	ft_get_owner_spaces(entry_list, i, j);
}
示例#3
0
int					ft_atoi(const char *str)
{
	unsigned int		i;
	int					base;
	long				tot;

	i = 0;
	base = 1;
	tot = 0;
	while (str && (*str == ' ' || (9 <= *str && *str <= 13)))
		str++;
	if (str && (*str == '-' || *str == '+'))
		i++;
	if (str && (i += ft_digitlen(str + i)) > 11)
		return (FTL_ERR);
	while (str && i-- > (*str == '-' || *str == '+'))
	{
		if (*str == '-')
			tot -= (str[i] - '0') * base;
		else
			tot += (str[i] - '0') * base;
		base *= 10;
	}
	return ((tot < FTL_B31 && tot >= FTL_INTMIN ? (int)tot : FTL_ERR));
}
示例#4
0
文件: func3.c 项目: maafterchef/42_1
int	ft_digitlen(int i)
{
	if (i < 0)
		i = -i;
	if (i <= 9)
		return (1);
	return (1 + ft_digitlen(i / 10));
}
示例#5
0
文件: func2.c 项目: maafterchef/42_2
int		ft_get_minor_spaces(t_infos *entry_list, int i, int j)
{
	static int	nb;
	int			k;
	int			tmp;

	if (!nb)
	{
		k = 0;
		while (k <= i)
		{
			if ((tmp = ft_digitlen(minor(entry_list[k].st_dev))) > nb)
				nb = tmp;
			k++;
		}
	}
	tmp = ft_digitlen(minor(entry_list[j].st_dev));
	while (tmp++ < nb + 1)
		ft_putchar(' ');
	ft_putnbr(minor(entry_list[j].st_dev));
	ft_putchar(' ');
	return (0);
}
示例#6
0
文件: ft_options.c 项目: kperreau/42
int		ft_precise(char *str, int len)
{
	int		i;
	int		n;

	i = 0;
	n = 0;
	while (i < len)
	{
		if (str[i - 1] == '.' && ft_isdigit(str[i]))
		{
			n = ft_atoi(str + i);
			i += ft_digitlen(n);
		}
		else
			++i;
	}
	return (n);
}
示例#7
0
unsigned int		ft_area_flag(const char *sarea, t_options *stc, va_list ap)
{
	if (sarea && stc && (('1' <= *sarea && *sarea <= '9') || *sarea == FT_STAR))
	{
		if (ft_isdigit(*sarea))
			stc->area = ft_atoi(sarea);
		else
			stc->area = va_arg(ap, int);
		stc->ck |= FT_AREA;
		stc->ck &= ~FT_CHECK_FLAG;
		if (*sarea == FT_STAR && (int)stc->area < 0)
		{
			stc->area = (int)(-stc->area);
			stc->fl |= FT_LESS;
		}
		if (stc->area >= FTL_B31)
			stc->area = 0;
		return (ft_digitlen(sarea + !(*sarea == FT_STAR)));
	}
	return (0);
}
示例#8
0
unsigned int		ft_accu_flag(const char *saccu, t_options *stc, va_list ap)
{
	if (saccu && stc && *saccu == '.')
	{
		stc->ck |= FT_ACCU;
		stc->ck &= ~FT_CHECK_FLAG;
		saccu++;
		if (ft_isdigit(*saccu) || *saccu == FT_STAR)
		{
			if (ft_isdigit(*saccu))
				stc->accu = ft_atoi(saccu);
			else
				stc->accu = va_arg(ap, int);
			if ((int)stc->accu < 0)
			{
				stc->accu = 0;
				stc->ck &= ~FT_ACCU;
			}
			return (ft_digitlen(saccu) + (*saccu == FT_STAR));
		}
		stc->accu = 0;
	}