[ C ] - Connaitre la longueur d'une ligne lue dans un fichier ?

- Connaitre la longueur d'une ligne lue dans un fichier ? [ C ] - C - Programmation

Marsh Posté le 19-04-2004 à 11:38:20    

J'ai un fichier de données que je veux lire ligne par ligne, ces lignes étant de longueurs variables. Dans toutes les fonctions que j'ai trouvées (fgets, fscanf, getline) il faut fournir la taille de la string qui va contenir la ligne. Comment déterminer la taille de chaque ligne à indiquer à ces fonctions ??

Reply

Marsh Posté le 19-04-2004 à 11:38:20   

Reply

Marsh Posté le 19-04-2004 à 11:39:49    

strlen()

Reply

Marsh Posté le 19-04-2004 à 11:48:25    

Euh strlen permet de déterminer la longueur d'une string, mais c'est pas ça que je veux ! J'ai besoin de connaitre d'avance la longueur de la string qui va contenir la ligne d'un fichier

Reply

Marsh Posté le 19-04-2004 à 11:51:37    

Si tu te relis tu verras que ce n'est pas possible. Le langage C n'est pas encore doté de dons de voyance ...
 
Le moyen que j'utilisais ( pas codé en C depuis un bout de temps ) c'est de prendre un buffer de taille suffisante.
 
Pierre


Message édité par Lord II le 19-04-2004 à 11:52:01
Reply

Marsh Posté le 19-04-2004 à 12:30:23    

Osama a écrit :

Euh strlen permet de déterminer la longueur d'une string, mais c'est pas ça que je veux ! J'ai besoin de connaitre d'avance la longueur de la string qui va contenir la ligne d'un fichier


il n'y a pas de string en C

Reply

Marsh Posté le 19-04-2004 à 12:31:55    

tu peux spécifier le nombre de caractère que tu veux prendre. fais-le pour éviter tout problème

Reply

Marsh Posté le 19-04-2004 à 12:47:15    

Il suffit de spécifier à fgets une taille assez grande (par exemple 4000) et après chaque lecture pour vérifier que tu as bien lu toute la ligne en une seule fois il suffit de vérifier que le dernier caractère est bien un retour chariot (sauf si c'est pas la dernière ligne).

Reply

Marsh Posté le 19-04-2004 à 13:37:11    

darkoli a écrit :

Il suffit de spécifier à fgets une taille assez grande (par exemple 4000) et après chaque lecture pour vérifier que tu as bien lu toute la ligne en une seule fois il suffit de vérifier que le dernier caractère est bien un retour chariot (sauf si c'est pas la dernière ligne).

il suffit d'utiliser getline si ton système la fournit ou de la coder rapidement vu que j'ai déjà donné plusieurs fois son code ici

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed