Rechercher sur le wiki de Cyril:

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

[ Adresse Bitcoin pour les dons BTC : 1KCZGe7PtxwaWEJf1dHcoqsxbrzypNTvEw ]