Aller au contenu

[Résolu] [C] Problême pour un pauvre débutant

Featured Replies

Posté(e)

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..?

Modifié par kgabou

Posté(e)

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)

Posté(e)
  • Auteur

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 :transpi:

Bon ben ça marche pas, toujours le même problême... :transpi:

Posté(e)

ce qui serais sympa, ce serais aussi que tu mettes ton code entre balise

 et que tu l'indentes proprement 
Posté(e)
  • Auteur

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);

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.