Fonction getline renvoie (null)
Fermé
gbenrais
Messages postés
3
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
26 décembre 2018
-
Modifié le 24 déc. 2018 à 18:17
gbenrais Messages postés 3 Date d'inscription lundi 24 décembre 2018 Statut Membre Dernière intervention 26 décembre 2018 - 26 déc. 2018 à 10:32
gbenrais Messages postés 3 Date d'inscription lundi 24 décembre 2018 Statut Membre Dernière intervention 26 décembre 2018 - 26 déc. 2018 à 10:32
A voir également:
- Fonction getline renvoie (null)
- Renvoie d'appel ooredoo ✓ - Forum Mobile
- Vendu par null - Forum Facebook
- Fonction si et - Guide
- Renvoie code ooredoo - Forum Mobile
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
4 réponses
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
25 déc. 2018 à 11:26
25 déc. 2018 à 11:26
Bonjour,
La réponse ne semble pas si évidente.
La fonction ne devrait retourner 0 que si le fichier est effectivement vide.
La bibliothèque statique peut interférer si elle contient une fonction qui a exactement le même nom et dans ce cas elle intercepterait la fonction de la bibliothèque de base.
La réponse ne semble pas si évidente.
La fonction ne devrait retourner 0 que si le fichier est effectivement vide.
La bibliothèque statique peut interférer si elle contient une fonction qui a exactement le même nom et dans ce cas elle intercepterait la fonction de la bibliothèque de base.
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
25 déc. 2018 à 20:22
25 déc. 2018 à 20:22
Il n'y a pas de
Peut-être en forçant le chargement de la bibliothèque standard avant library.a mais bof.
Il te reste à réécrire cette fonction en lui donnant au autre nom.
namespaceen C, dommage.
Peut-être en forçant le chargement de la bibliothèque standard avant library.a mais bof.
Il te reste à réécrire cette fonction en lui donnant au autre nom.
int mon_getline( char** lineptr , size_t* plg , FILE* file ) {
if ( !lineptr || !plg || !file ) {
errno = EINVAL;
return -1;
}
if ( ferror( file ) )
return -1;
if ( feof( file ) )
return -1;
char line[255+1];
line[255] = '\0'; // needed if the line needs severals reads
size_t written = 0;
size_t len;
do {
if ( !fgets( line , 255 , file ) )
return -1;
char* ptr = strchr( line , '\n' );
if ( ptr )
*ptr = '\0';
len = strlen( line ); // <255 if line is complete
if ( written+len+1 > *plg ) {
ptr = realloc( *lineptr , written+len+1 );
if ( !ptr )
return -1;
*plg = written+len+1;
*lineptr = ptr;
}
memcpy( *lineptr + written , line , len+1 );
written += len;
} while ( len == 255 ); // the read was incomplete, continue
return (int)written;
}
gbenrais
Messages postés
3
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
26 décembre 2018
Modifié le 25 déc. 2018 à 12:26
Modifié le 25 déc. 2018 à 12:26
Bonjour Dalfab,
Merci pour ta réponse, getline ne renvoie pas (null), elle renvoie 0 et affecte (null) à line, excuse pour l'erreur.
Ton intuition doit être la bonne. Y a t il moyen en C d'utiliser qqe chose comme les namespaces pour gérer les situations de doublons de noms ? Je pourrai alors faire référence à la bonne fonction getline de stdio.
Merci
Merci pour ta réponse, getline ne renvoie pas (null), elle renvoie 0 et affecte (null) à line, excuse pour l'erreur.
Ton intuition doit être la bonne. Y a t il moyen en C d'utiliser qqe chose comme les namespaces pour gérer les situations de doublons de noms ? Je pourrai alors faire référence à la bonne fonction getline de stdio.
Merci
gbenrais
Messages postés
3
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
26 décembre 2018
26 déc. 2018 à 10:32
26 déc. 2018 à 10:32
Bonjour Dalfab,
J'ai utilisé ta fonction et ça marche très bien, merci !
J'ai utilisé ta fonction et ça marche très bien, merci !