Ecrire dans un fichier
Résolu
M@teo
-
M@teo -
M@teo -
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.
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.
2 réponses
-
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 -
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 .