Lire Ecrire File c2

Embed Size (px)

Citation preview

  • 8/16/2019 Lire Ecrire File c2

    1/15

    LIRE ET ÉCRIRE DANS DES FICHIERS

    Ouvrir et fermer un fichier

    #include 

    #include 

    1

    2

    Page 1 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    2/15

    fopen : ouverture du fichier

    FILE* fopen(const   char* nomDuFichier , const   char* modeOuverture) ;

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

    return 0;

    }

    1

    1

    2

    3

    4

    5

    6

    Page 2 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    3/15

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

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

    return 0;

    }

    1

    2

    3

    4

    5

    6

    7

    8

    Page sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    4/15

    fichier = fopen("dossier/test.txt", "r+");

    fichier = fopen("C:\\Program Files\\Notepad++\\readme.txt", "r+");

    1

    1

    Page sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    5/15

    Tester l'ouverture du fichier

    f!!o!e : fermer le fichier

    fichier = fopen("/home/mateo/dossier/readme.txt" , "r+");

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

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

    if (fichier != NULL)

    {

    // On peut lire et écrire dans le fichier

      }

    else

      {

    // On affiche un message d'erreur si on veut

    printf("Impossible d'ouvrir le fichier test.txt");

      }

    return 0;

    }

    int fclose(FILE*  pointeurSurFichier) ;

    1

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1

    11

    12

    13

    14

    1516

    17

    18

    1

    Page 5 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    6/15

      crire dans le fichier

    fclose(fichier);

    int main( int argc ,   char *argv[])

    {FILE* fichier = NULL;

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

    if (fichier != NULL)

    {

    // On lit et on écrit dans le fichier

    // ...

    fclose(fichier); // On ferme le fichier ui a été ouvert

      }

    return 0;

    }

    Diff rente m th de de ecture criture

    1

    1

    23

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    Page 6 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    7/15

    fputc

    fputs

    int fputc(int caractere , FILE *  pointeurSurFichier ;

    int main( int argc ,   char *argv[])

    {FILE* fichier = NULL;

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

    if (fichier != NULL)

    {

    fputc(' ', fichier) ; // criture du caract re

    fclose(fichier);

      }

    return 0;

    }

    1

    1

    23

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    Page sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    8/15

    fpr!!tf

    char* fputs(const   char* chaine , FILE * pointeurSurFichier) ;

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

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

    if (fichier != NULL)

    {

    fputs("Salut les ér0s\nComment alle vous ", fichier) ;fclose(fichier);

      }

    return 0;

    }

    int main( int argc ,   char *argv[])

    {

    1

    1

    2

    3

    4

    5

    6

    7

    8

    91

    11

    12

    13

    14

    1

    2

    Page sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    9/15

      ire dans un fichier

    f!!tc

      FILE * fichier = NULL;

    int age = 0;

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

    if (fichier != NULL)

    {

    // On demande l' ge

    printf(" uel age ave vous ");

    scanf(" d",   age);

    // On l'écrit dans le fichier

    fprintf(fichier, "Le Monsieur ui utilise le programme, il a d ans", age) ;

    fclose(fichier);

      }

    return 0;

    }

    int fgetc(FILE* pointeurDeFichier) ;

    3

    4

    5

    6

    7

    8

    9

    1

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    1

    Page sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    10/15

    Coucou, e suis le contenu du fichier test.txt !

    f!!ts

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

    int caractere ctuel = 0;

      fichier = fopen("test.txt", "r");

    if (fichier != NULL)

    {

    // oucle de lecture des caract res un un

    do  {

    caractere ctuel = fgetc(fichier); // On lit le caract re

    printf(" c", caractere ctuel) ; // On l'affiche

      } hile (caractere ctuel != EOF) ; // On continue tant ue fgetc n'a pas retourné EOF (fin de

    fichier)

    fclose(fichier);

      }

    return 0;

    }

    char* fgets(char* chaine ,   int nbreDeCaracteres Lire , FILE * pointeurSurFichier ;

    #define  ILLE M 1000 // ableau de taille 1000

    int main( int argc ,   char *argv[])

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    1112

    13

    14

    15

    16

    17

    18

    19

    20

    21

    1

    1

    2

    3

    Page 10 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    11/15

    Coucou, e suis le contenu du fichier test.txt !

    {

    FILE* fichier = NULL;

    char  chaine[ ILLE M ] = ""; // Cha ne vide de taille ILLE M

    fichier = fopen("test.txt", "r");

    if (fichier != NULL)

    {

    fgets(chaine,  ILLE M , fichier) ; // On lit maximum ILLE M caract res du fichier, on stoc e

    le tout dans "chaine"

    printf(" s", chaine) ; // On affiche la cha ne

    fclose(fichier);

      }

    return 0;

    }

    #define  ILLE M 1000

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

    char  chaine[ ILLE M ] = "";

      fichier = fopen("test.txt", "r");

    if (fichier != NULL)

    {

    hile ( fgets(chaine,  ILLE M , fichier) != NULL) // On lit le fichier tant u'on ne re oit pas

    d'erreur (NULL)

      {

    printf(" s", chaine) ; // On affiche la cha ne u'on vient de lire  }

    fclose(fichier);

      }

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    1415

    16

    17

    18

    Page 11 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    12/15

    fscanf

    Les meilleurs scores sont : 15, 20 et 30

    return 0;

    }

    hile ( fgets(chaine,  ILLE M , fichier) != NULL)

    int main( int argc ,   char *argv[])

    {

    FILE* fichier = NULL;

    int score[ 3] = { 0}; // ableau des 3 meilleurs scores

      fichier = fopen("test.txt", "r");

    if (fichier != NULL)

    {

    fscanf(fichier, " d d d",   score[0],   score[1],   score[2]);

    printf("Les meilleurs scores sont : d, d et d", score[ 0], score[ 1], score[ 2]);

    fclose(fichier);

      }

    return 0;

    }

    Se d cer d n un fichier

    19

    2

    21

    1

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1

    11

    1213

    14

    15

    16

    17

    Page 12 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    13/15

    f!!!! : position dans le fichier

    fs!!! : se positionner dans le fichier

    long ftell(FILE*  pointeurSurFichier) ;

    int fsee (FILE* pointeurSurFichier ,   long  deplacement ,   int origine) ;

    fsee (fichier, 2, SEE SE ) ;

    fsee (fichier,  4 , SEE CU ) ;

    fsee (fichier, 0, SEE END) ;

    1

    1

    1

    1

    1

    Page 1 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    14/15

    r!!!nd  : retour au début

    r!na!! : renommer un fichier

    void  re ind(FILE* pointeurSurFichier) ;

    Ren mmer et u rimer un fichier

    int rename(const   char* ancienNom , const   char* nouveauNom) ;

    int main( int argc ,   char *argv[])

    {

    rename("test.txt", "test renomme.txt");

    return 0;

    }

    1

    1

    1

    2

    34

    5

    6

    Page 1 sur 15Lire et écrire dans des fichiers

    16/12/2015https://openclassrooms.com/courses/apprenez-a-programmer-en-c/lire-et-ecrire-dans-...

  • 8/16/2019 Lire Ecrire File c2

    15/15

    r!!!!! : supprimer un fichier

    int remove(const   char* fichier Supprimer) ;

    int main( int argc ,   char *argv[])

    {

    remove("test.txt");

    return 0;

    }

    J'ai terminé ce chapitre et je passe au suivant

    1

    1

    2

    3

    4

    5

    6

    Page 15 sur 15Lire et écrire dans des fichiers