Petit probleme avec scanf()

manest -  
 Bob -
Salut à tous.
J'ai un probleme avec mon scanf().
En fait je m'en sert pour lire dans un fichier qui est mit en entrée standard.

./mon_executable < Mon_fichier_texte

donc grace au scanf, je scan un pemiere fois chaque caractere et et je compte le nombre qu'il y a de chaque caractere dans le texte, par exemple : 3 'a', 5 'b', 2 'c' etc...
je scan donc jusqu'a la fin du fichier. Apres je fait plein de bidouilles avec tout ca, et a la fin du programme j'aimerais rescanner les caractere du fichier dans l'ordre. mais je ne sais pas comment dire au scanf de repartir du debut. Je ne suis pas sur que se soit possible. Quelqu'un voit ce que je veux dire et aurait une solution?

ps : je ne peux pas stocker les caracteres la premiere fois. (non vraiment...)

ps2 : c'est du C.

Merci a vous :)

2 réponses

mirza
 
Hello,

pas élégant mais ça marche:

fopen
scanf 1ere passe
fclose

fopen
scanf 2ème passe
fclose

bye,

mirza
0
Bob
 
Pourquoi pas un "calloc()" suivi d'un "fread()"? Apres boucles successives pour créer ton tableau de statistique (8 kio) en 1ère passe puis tu fais ce que tu as envie pour les N passes suivantes sans oublier de libérer la mémoire quand c'est nécessaire. Sans le stockage en mémoire tu risques de faire beaucoup d'acces au disque et c'est trés lent.
0