Exercice corrigé Langage C les fichiers

Exercice IX_1:

#include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier1,*fichier2;

char c;

printf("COPIE EN COURS ...\n");

fichier1 = fopen("c:\\bc5\\Courc_C\\Teach_C\\CHAP9\\essai.dat","r");

fichier2 = fopen("copie.dat","w");

while((c=(char)getc(fichier1))!=EOF)putc(c,fichier2);

fclose(fichier1);

fclose(fichier2);

printf("C'EST FINI !\n");

printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_2:

 #include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier;

int compteur=0;

fichier = fopen("c:\\bc5\\Courc_C\\teach_C\\chap9\\copie.dat","r");

while(getc(fichier)!=EOF)compteur++;

fclose(fichier);

printf("TAILLE DU FICHIER: %d OCTETS\n",compteur);

printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

 Exercice IX_3:

 

 #include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier;

int i,n;

fichier = fopen("nombre.dat","wb+");

for(i=0;i<10;i++)

            {

            printf("N = ");

            scanf("%d",&n);

            putw(n,fichier);

            }

rewind(fichier);

while(!feof(fichier))   /* essayer avec une boucle for */

{

n=getw(fichier);

printf("%d ",n);

}

fclose(fichier);

printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_4:

 

#include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier;

char c,nom[10];

printf("NOM DU FICHIER A LISTER: ");

gets(nom);

if((fichier = fopen(nom,"r"))==NULL)

            printf("\nERREUR A L'OUVERTURE, CE FICHIER N'EXISTE PAS\n");

else

            {

            printf("\n\t\t\tLISTING DU FICHIER\n");

            printf("\t\t\t------------------\n\n");

            while((c=getc(fichier))!=EOF)printf("%c",c);

            }

fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_5:

 

#include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier;

int i;

char p[4];

/* saisie du fichier */

fichier = fopen("chaine.dat","w+");

printf("\nENTRER 5 CHAINES DE 3 CARACTERES\n");

for(i=0;i<5;i++)

            {

            gets(p);

            fputs(p,fichier);

            }

rewind(fichier);   /* pointeur au debut */

/* relecture du fichier */

printf("\n\nLECTURE DU FICHIER\n\n");

while((fgets(p,4,fichier))!=NULL)printf("%s ",p);

fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_6:

 

#include <stdio.h>

#include <conio.h>

void main()

{

FILE *fichier;

char p[4];

/* ajout d'une chaine */

fichier = fopen("chaine.dat","a+"); /* pointeur a la fin */

printf("\nENTRER LA CHAINE DE 3 CARACTERES A AJOUTER\n");

gets(p);

fputs(p,fichier);

/*lecture du fichier pour verification */

rewind(fichier);

printf("\n\nLECTURE DU FICHIER\n");

while((fgets(p,4,fichier))!=NULL)printf("%s ",p);

fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_7:

 

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

FILE *fichier;

char p[4],q[4],trouve=0;

/* recherche d'une chaine */

fichier = fopen("chaine.dat","r"); /* lecture seule */

printf("\nENTRER LA CHAINE DE 3 CARACTERES RECHERCHEE\n");

gets(p);

printf("\n\nRECHERCHE ...\n\n");

while(((fgets(q,4,fichier))!=NULL)&&(trouve==0))

            if(strcmp(p,q)==0)trouve = 1;   /* compare les chaines */

if (trouve ==0) printf("CETTE CHAINE N'EXISTE PAS DANS LE FICHIER\n");

else printf("CHAINE TROUVEE DANS LE FICHIER\n");

/*lecture du fichier pour verification */

rewind(fichier);

printf("\n\nLECTURE DU FICHIER\n");

while((fgets(q,4,fichier))!=NULL)printf("%s ",q);

fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");

getch();

}

Exercice IX_8:

 #include <stdio.h>

#include <conio.h>

#include <string.h>

typedef struct

{

char nom[10];

char prenom[10];

int age;

}

carte;              /* creation d'un type carte */

void creer_fichier(FILE *f,char *n)

{

char choix;

carte fiche;

clrscr();

printf("CREATION DU FICHIER \n\n");

printf("NOM DU FICHIER A CREER: ");

gets(n);

flushall();

f = fopen(n,"w");

do

            {

            printf("\nSAISIE D'UNE FICHE ?(o/n) ");

            choix = (char)getchar();

   flushall();

            if ((choix=='o')||(choix=='O'))

                        {

                        printf("\nNOM: ");gets(fiche.nom);

                        printf("PRENOM: ");gets(fiche.prenom);

                        printf("AGE: ");scanf("%d",&fiche.age);

                        flushall();

                        fwrite(&fiche,sizeof(carte),1,f);

                        }

            }

while((choix=='o')||(choix=='O'));

fclose(f);

}

void lire_fichier(FILE *f,char *n)

{

carte fiche;

int compteur=0;

clrscr();

printf("LECTURE DU FICHIER\n\n");

printf("NOM DU FICHIER A LIRE: ");gets(n);

flushall();

f = fopen(n,"r");

if (f == NULL) printf("\nERREUR, CE FICHIER N'EXISTE PAS\n\n");

else

{

printf("\nLISTING DU FICHIER\n\n");

while(fread(&fiche,sizeof(carte),1,f)!=0)

            {

            printf("fiche nø%d: \n",compteur);

            compteur++;

            printf("%s %s %d an(s)\n\n",fiche.nom,fiche.prenom,fiche.age);

            }

fclose(f);

}

printf("POUR CONTINUER FRAPPER UNE TOUCHE ");

getch();

}

void ajout(FILE *f,char *n)

{

carte fiche;

char choix;

clrscr();

printf("AJOUT D'UNE FICHE \n\n");

printf("NOM DU FICHIER A MODIFIER: ");

gets(n);

flushall();

f = fopen(n,"a");

do

            {

            printf("\nSAISIE D'UNE FICHE ?(o/n) ");

            choix = (char)getchar();

   flushall();

            if ((choix=='o')||(choix=='O'))

                        {

                        printf("\nNOM: ");gets(fiche.nom);

                        printf("PRENOM: ");gets(fiche.prenom);

                        printf("AGE: ");scanf("%d",&fiche.age);

                        flushall();

                        fwrite(&fiche,sizeof(carte),1,f);

                        }

            }

while((choix=='o')||(choix=='O'));

fclose(f);

}

void recherche(FILE *f,char *n)

{

carte fiche;

int compteur=0;

char trouve = 0,nn[10],pp[10];

clrscr();

printf("RECHERCHE DE FICHE\n\n");

printf("NOM DU FICHIER: ");

gets(n);

flushall();

f = fopen(n,"r");

printf("\nFICHE A RETROUVER:\n");

printf("NOM: ");gets(nn);

printf("PRENOM: ");gets(pp);

flushall();

while((fread(&fiche,sizeof(carte),1,f)!=0)&&(trouve==0))

      {

      if((strcmp(fiche.nom,nn)==0)&&(strcmp(fiche.prenom,pp)==0))

                        {

                        trouve=1;

                        printf("FICHE RETROUVEE: FICHE nø%2d\n",compteur);

                        }

      compteur++;

      }

if (trouve==0)printf("CETTE FICHE N'EXISTE PAS\n");

fclose(f);

printf("POUR CONTINUER FRAPPER UNE TOUCHE ");

getch();

}

void main()

{

FILE *fichier;

char nom[10];           /* nom du fichier */

char choix;

do

{

            clrscr();

            printf("\t\t\tGESTION DE FICHIER\n");

            printf("\t\t\t------------------\n\n\n");

            printf("CREATION DU FICHIER  ---> 1\n");

            printf("LECTURE DU FICHIER   ---> 2\n");

            printf("AJOUTER UNE FICHE    ---> 3\n");

            printf("RECHERCHER UNE FICHE ---> 4\n");

            printf("SORTIE                       ---> S\n\n");

            printf("VOTRE CHOIX: ");

            choix = (char)getchar();

   flushall();

            switch(choix)

                        {

                        case '1':creer_fichier(fichier,nom);break;

                        case '2':lire_fichier(fichier,nom);break;

                        case '3':ajout(fichier,nom);break;

                        case '4':recherche(fichier,nom);break;

                        }

}

while ((choix!='S') && (choix!='s'));

}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *