Le pointeur sur le fichier aprés fseek

ninanani94 -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voudrais savoir est-ce que aprés avoir utiliser fseek le pointeur vers le fichier changera ?
par exemple je veux extraire de mon fichier toutes ses lignes en utilisant fgets et à chaque fois récupérer les mots composants cette ligne dans un tableau de chaine de caractères (pour faire une indexation ) donc aprés mon fgets je calcule la longueur de la ligne que je viens d'extraire et je fait fseek(f,longueur_ligne,1) donc je veux savoir est-ce que le pointeur sur fichier "FILE *f" changera pour le prochain appel de fgets (fgets(ligne,X,f)) est-ce qu'il pointera la position de mon curseur aprés fseek ou bien le début du fichier????

help pliiiiiiiiiiiiiz ^^



A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

je voudrais savoir est-ce que aprés avoir utiliser fseek le pointeur vers le fichier changera ?
Le pointeur vers le fichier ne changera pas. En revanche l'indicateur de position du flux changera. C'est le but de la fonction. Tu indiques où tu souhaites placer l'indicateur.

et à chaque fois récupérer les mots composants cette ligne dans un tableau de chaine de caractères
Pourquoi utiliser fseek() pour faire ça ??? Je vois pas le rapport... Donne un exemple précis de ce que tu veux faire, on te donnera des fonctions adaptées.

Cdlt,
0
ninanani94
 
oui mais mon probléme c'est que je veux utiliser fgets plusieurs fois, fgets nous permet de lire une seule ligne du fichier et je veux lire tout le fichier ligne par ligne ;donc je fait une boucle ,alors pour le premier fgets c'est bon il me donne la premiere ligne mais pour le deuxieme il m'affiche pratiquement n'importe quoi:p ;moi cke je veux c'est la deuxieme ligne donc j'ai pensée à utiliser fseek aprés avoir calculer la longueur de ma premiere ligne et positionner mon curseur virtuelle à cette position puis faire faire un fgets pour avoir ma deuxieme ligne sauf que ça ne marche pas!!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Cela dépend de la taille de ta ligne.
si ton buffer est assez grand le fgets lira bien le fichier ligne par ligne. S'il n'est pas assez grand, le fgets suivant lira le reste de la ligne. Ton fseek ne reglera pas le problème. Montre ton code ca sera plus simple.
0