kgabou Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 Salut tout le monde. Alors, voilà un code que mon prof m'a donné (on commence à voir les modifications de fichiers) : # include <stdio.h> int main() { int i; FILE *f; f=fopen("essai.dat","wt"); i=2; fprintf(f,"%d",&i); fclose(f); i=3; fprintf(f,"%d",&i); fclose(f); f=fopen("essai.dat","rt"); fscanf(f,"%d",&i); printf("Voici i:\n %d",i); fclose(f); } Si j'ai bien compris ce code crée le fichier texte essai.dat, écrit 2 dedans, le ferme, le réouvre, écrit 3, le ferme à nouveau puis renvoie 3. Je me trompe ? Bref le fait est que lorsque je rentre ça sous Dev-C++, je me retrouve avec 2293588 renvoyé par la console quand j'exécute, et écrit dans le fichier... J'ai un peu de mal à comprendre... quelqu'un aurait-il une idée..?
keneda212 Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 malgré le fait que le code ne soit pas beau, je crois qu'il manque un fopen dans le script il ouvre le fichier, ecrit 2, puis le ferme. il ecrit 3 dedans et il le referme (il doit manquer un fopen avant non ?) apres il le réouvre, lit un entier, puis ferme le fichier et au final il attend un entier provenant de l'entrée standart (ton clavier a priori)
kgabou Posté(e) le 11 décembre 2007 Auteur Posté(e) le 11 décembre 2007 Oui le scanf à la fin c'est moi qui l'ait rajouté pour empêcher la fenêtre de se refermer. Merci pour le fopen, t'as raison, j'essaye ça et je reviens Bon ben ça marche pas, toujours le même problême...
keneda212 Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 fprintf(f,"%d ",&i); tu penses pas qu'il y a un soucis ici
Quarky Posté(e) le 12 décembre 2007 Posté(e) le 12 décembre 2007 Ca peut aider d'autres personnes, on sait jamais
lorinc Posté(e) le 12 décembre 2007 Posté(e) le 12 décembre 2007 ce qui serais sympa, ce serais aussi que tu mettes ton code entre balise et que tu l'indentes proprement
kgabou Posté(e) le 13 décembre 2007 Auteur Posté(e) le 13 décembre 2007 C'est fait, par contre je laisse l'erreur dans le code initial, la solution étant de ne pas mettre de & à intérieur du fprintf. Code correct : fprintf(f,"%d",i); fclose(f); i=3; fprintf(f,"%d",i);
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.