Fichier [Résolu]

Messages postés
4
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
24 janvier 2010
- - Dernière réponse : Nabluk
Messages postés
4
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
24 janvier 2010
- 24 janv. 2010 à 19:53
Bonjour, j'espère que vous pourrez m'aider...

J'ai écris un programme en C qui me crée un fichier contenant environ 10 000 000 de nombre en une colonne.
Je voudrais un moyen de lire le dernier nombre du fichier sans parcourir tout le fichier car cela prend trop de temps en sachant que le but est d'augmenter encore le nombre de chiffre.

Merci.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90
3
Merci
Salut,
fseek() te permet d'aller à la fin d'un fichier en spécifiant l'option SEEK_END


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BunoCS
Messages postés
4
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
24 janvier 2010
0
Merci
Re,

Si j'écris le code suivant :
int n;
FILE *fichier = fopen("liste.txt","r");
fseek(fichier, 0, SEEK_END);
fscanf(fichier,"%d",&n);
printf("%d",n);
fclose(fichier);

Il ne m'écrit pas le dernier nombre de la liste mais "l'adresse" (je crois) de EOF (pas sur).
En gros, il place le curseur juste en dessous du dernier élément. Ceci semble normal vu que chaque élément est un entier suivi d'un retour à la ligne.
Comment dois-je faire pour lire le dernier nombre?
Commenter la réponse de Nabluk
Messages postés
14636
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
9 octobre 2019
90
0
Merci
Tu peux parcourir le fichier à l'envers, jusqu'à trouver 2 retours à la ligne. Ton dernier entier devrait être compris entre ces 2 caractères, non?

...
10\n
11\n
EOF


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
4
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
24 janvier 2010
0
Merci
Une idée du code que je peux utiliser pour lire le dernier élément en lisant à l'envers ?

Merci des réponses.
Commenter la réponse de Nabluk
Messages postés
1
Date d'inscription
dimanche 24 janvier 2010
Statut
Membre
Dernière intervention
24 janvier 2010
0
Merci
salut je suis nouveau ici je cherche le cours de fichiers dans l'algorithme et merci
Commenter la réponse de a7zaaan
Messages postés
4
Date d'inscription
dimanche 27 mai 2007
Statut
Membre
Dernière intervention
24 janvier 2010
0
Merci
Re,

Quelqu'un pourrait m'aider à résoudre mon problème, je repose ma question :
Je voudrais lire le dernier élément d'une liste de nombre dans un fichier. Cette liste contient environ 10 000 000 de nombres inscrit comme suit : (nombre)\n.
Quelqu'un aurait une idée de code pour ne pas lire tous les nombres parce que c'est beaucoup trop long??

Merci pour votre aide.
Commenter la réponse de Nabluk