Ecrire dans un fichier

Résolu/Fermé
M@teo - 13 avril 2012 à 20:52
 M@teo - 14 avril 2012 à 11:21
Bonjour à tout le monde,

Je viens de commencer à apprendre à programmer en C avec Code::Blocks sous Windows 7, et je viens juste de voir comment écrire dans un fichier. J'ai essayé de faire le programme suivant, mais il ne marche pas, bien qu'il n'y ait aucune erreur à la compilation:

#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX_CHAINE 1000

int main(int argc, char *argv[])
{
FILE* fichier = NULL;
int age=0;
char message_age[]="Age du joueur:";
char chaine_temp[TAILLE_MAX_CHAINE] = "";

printf("Quel age avez vous?\nVotre age => ");
scanf("%d", &age);

fichier = fopen("test.txt", "w+");

if (fichier != NULL)
{
fputs("Age du joueur:\n", fichier);
fprintf(fichier, "%d", age);
rewind(fichier);
while(strcmp(chaine_temp , message_age)!=0)
{
fgets(chaine_temp,TAILLE_MAX_CHAINE, fichier);
}
age=0;
fscanf(fichier, "%d", &age);
printf("Ah! Vous avez donc %d ans!", age);

fclose(fichier);
}
else
{
printf("Impossible d'ouvrir le fichier test.txt, vérifiez son existance");
return 0;
}

return 0;
}

Si quelqu'un saurait pourquoi il ne marche pas, je le remercie d'avance de me le dire.

A voir également:

2 réponses

scribedico Messages postés 47 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 6 mai 2013 2
13 avril 2012 à 23:15
laisse !
c'est moi qui doit retourner à l'école, tu as raison , W+ ouvre le fichier en lecture et écriture (:-)

essaie ça : char message_age[]="Age du joueur:\n";

fgets recupère un retour chariot dans le buffer
1
Merci ça marche maintenant!
0
scribedico Messages postés 47 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 6 mai 2013 2
13 avril 2012 à 21:32
Salut,

ton fichier est ouvert en écriture, et tu envoies une fonction de lecture.
Sans aller plus loin, referme le après avoir enregistré l'age, et ouvre le ensuite en lecture .
0
je ne comprend pas, j ai pourtant appris que w+ permettait d ecrire et de lire un fichier. Quel mode devrais je prendre si ce n est pas le cas?
0