Table des matières
Projet Nicolas
Le fichier de données
Avant modification
1,SCHMIDT,paul,12,14,13,11,04,16,14 2,MEYER,Kevin,10,08,14,10,11,14,16 3,SCHAEGIS,Nicolas,13,11,11,12,15,18,08 4,DUPONT,jean,15,13,11,12,19,14,16 5,MACRON,pierre,11,10,09,12,08,14,09 6,PHILIPS,Sophie,17,18,16,19,17,15,19
Après modification
1,SCHMIDT,paul,12,14,13,11,04,16,14 2,MEYER,Kevin,10,08,14,10,11,14,16 3,SCHAEGIS,Nicolas,18,16,17,15,19,12,15 4,DUPONT,jean,15,13,11,12,19,14,16 5,MACRON,pierre,11,10,09,12,08,14,09 6,PHILIPS,Sophie,17,18,16,19,17,15,19
Les programmes
lecture.c
Pour simplement lire le fichier et afficher les données à l'écran.
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { FILE* fp; char buf[1024]; /* Longueur max de chaque ligne du fichier */ char NomFichier[]="Fichier.txt"; /* Nom du fichier Texte */ if ((fp = fopen(NomFichier, "r")) == NULL) { /* Ouverture du fichier. */ perror("fopen source-file"); return 1; } /* Lecture et affichage ... */ while (fgets(buf, sizeof(buf), fp) != NULL) { buf[strlen(buf) - 1] = '\0'; // On mange le fin de ligne de fgets... printf("%s\n", buf); } /* Fermeture du fichier */ fclose(fp); return 0; }
ecriture.c
Pour modifier la troisième ligne avec de nouvelles notes.
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { FILE* fpl; FILE* fpe; char buf[1024]; /* Longueur max de chaque ligne du fichier */ char NomFichierLecture[]="Fichier.txt"; /* Nom du fichier Texte */ char NomFichierEcriture[]="Fichier_NEW.txt"; /* Nom du fichier Texte */ if ((fpl = fopen(NomFichierLecture, "r")) == NULL) { /* Ouverture du fichier en lecture. */ perror("fopen source-file"); return 1; } if ((fpe = fopen(NomFichierEcriture, "w")) == NULL) { /* Ouverture du fichier en ecriture. */ perror("fopen source-file"); return 1; } /* Donnees a modifier : */ char* NouveauTexte="3,SCHAEGIS,Nicolas,18,16,17,15,19,12,15\n"; /* Index de l'etudiant a modifier : */ int IndexEtudiant=3; int i=0; /* Lecture et enregistrement nouveau fichier ... */ while (fgets(buf, sizeof(buf), fpl) != NULL) { i++; //buf[strlen(buf) - 1] = '\0'; // On mange le fin de ligne de fgets... if (i==IndexEtudiant) { fputs(NouveauTexte, fpe); } else { fputs(buf, fpe); } } /* Fermeture du fichier */ fclose(fpl); fclose(fpe); rename(NomFichierEcriture, NomFichierLecture); return 0; }