IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Explication méthode Get next line


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Par défaut Explication méthode Get next line
    Bonjour , j'aurais besoin d'aide pour comprendre un code et ses fonctions
    Voici la version du get next line que j'aimerais comprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    #include "get_next_line.h"
     
    char	*ft_get_line(char *save)
    {
    	int		i;
    	char	*s;
     
    	i = 0;
    	if (!save[i])
    		return (NULL);
    	while (save[i] && save[i] != '\n')
    		i++;
    	s = (char *)malloc(sizeof(char) * (i + 2));
    	if (!s)
    		return (NULL);
    	i = 0;
    	while (save[i] && save[i] != '\n')
    	{
    		s[i] = save[i];
    		i++;
    	}
    	if (save[i] == '\n')
    	{
    		s[i] = save[i];
    		i++;
    	}
    	s[i] = '\0';
    	return (s);
    }
     
    char	*ft_save(char *save)
    {
    	int		i;
    	int		c;
    	char	*s;
     
    	i = 0;
    	while (save[i] && save[i] != '\n')
    		i++;
    	if (!save[i])
    	{
    		free(save);
    		return (NULL);
    	}
    	s = (char *)malloc(sizeof(char) * (ft_strlen(save) - i + 1));
    	if (!s)
    		return (NULL);
    	i++;
    	c = 0;
    	while (save[i])
    		s[c++] = save[i++];
    	s[c] = '\0';
    	free(save);
    	return (s);
    }
     
    char	*ft_read_and_save(int fd, char *save)
    {
    	char	*buff;
    	int		read_bytes;
     
    	buff = malloc((BUFFER_SIZE + 1) * sizeof(char));
    	if (!buff)
    		return (NULL);
    	read_bytes = 1;
    	while (!ft_strchr(save, '\n') && read_bytes != 0)
    	{
    		read_bytes = read(fd, buff, BUFFER_SIZE);
    		if (read_bytes == -1)
    		{
    			free(buff);
    			return (NULL);
    		}
    		buff[read_bytes] = '\0';
    		save = ft_strjoin(save, buff);
    	}
    	free(buff);
    	return (save);
    }
     
    char	*get_next_line(int fd)
    {
    	char		*line;
    	static char	*save;
     
    	if (fd < 0 || BUFFER_SIZE <= 0)
    		return (0);
    	save = ft_read_and_save(fd, save);
    	if (!save)
    		return (NULL);
    	line = ft_get_line(save);
    	save = ft_save(save);
    	return (line);
    }
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Get Next Line - Problème de compréhension
    Par PrettyLittleLiars dans le forum C
    Réponses: 7
    Dernier message: 07/12/2017, 22h57
  2. reconnaissance de saut de lignes et get line
    Par membreComplexe12 dans le forum C++
    Réponses: 6
    Dernier message: 15/02/2011, 18h05
  3. Tkinter.Text get last line
    Par ____22 dans le forum Tkinter
    Réponses: 0
    Dernier message: 30/08/2010, 12h43
  4. SQLGrammarException: could not get next sequence value
    Par mouss4rs dans le forum Hibernate
    Réponses: 7
    Dernier message: 10/04/2009, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo