Ce qui va pas dans le code posté (aux questions de droit près):
Quand tu fais fputs(chaine,texte); ta position dans le fichier est a la fin de la chaîne écrite. Quand tu fais ensuite fscanf(texte,"%d %d %d %s",&chiffres[0],&chiffres[1],&chiffres[2],prenom); tu fais une lecture après ce que tu viens d'écrire.
Il faut donc avant d'écrire stocker la position dans le fichier, écrire, revenir à la position stockée, et enfin lire ce qu'on vient d'écrire.
long pos = ftell(texte); // stockage de la position dans le fichier
fputs(chaine,texte);
....
fseek(texte, pos, SEEK_SET); // retour à la position stockée
fscanf(texte,"%d %d %d %s",&chiffres[0],&chiffres[1],&chiffres[2],prenom);
Notes que quand c'est la première ligne du fichier, on peut simplifier ceci (mais la procédure précédente est la plus générale et la plus utile):
fputs(chaine,texte); // écriture de la première ligne du fichier
....
rewind(texte); // retour en début de fichier
fscanf(texte,"%d %d %d %s",&chiffres[0],&chiffres[1],&chiffres[2],prenom);
Citation :
Dans le programme que j'ai fait donc, ça se passe comme ça : ouverture du fichier en écriture on met la chaine dans le fichier on ferme le fichier on l'ouvre en lecture seule fscanf, et là ça marche !
|
Ça marche parce que tu écris la première ligne, et que quand tu fermes et qu'ensuite tu rouvres le fichier, tu es positionné en début de fichier.
A+,
Message édité par gilou le 04-06-2011 à 14:36:38
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --