Vous êtes sur la page 1sur 7

Université IBN ZOHR Année Universitaire 2019-2020

Faculté des Sciences Filière SMI / Semestre 4


Département d'Informatique Programmation II

--- SERIE 3 ---

Exercice 1 :
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fptr;
char ch;
int wrd=1,charctr=1;
char fname[20];

printf("Donnez le nom du fichier a lire : \n");


scanf("%s",fname);

fptr=fopen(fname,"r");
if(fptr==NULL)
{
printf("Le fichier n'existe pas");
}
else
{
ch=fgetc(fptr);
printf("Le contenu du fichier %s est :\n",fname);
while(ch!=EOF)
{
printf("%c",ch);
if(ch==' '||ch=='\n')
{
wrd++;
}
else
{
charctr++;
}
ch=fgetc(fptr);
}
printf("\nLe nombre de mots est : %d\n",wrd);
printf("Le nombre de caracteres est : %d\n",charctr-1);

1/7
}
fclose(fptr);
return 0;
}

Exercice 2 :
#include <stdio.h>

int main ()
{
FILE * fptr;
int i,n;
char str[100];
char fname[20];
char str1;

printf("Donner le nom du fichier a ouvrir : ");


scanf("%s",fname);
fptr = fopen(fname, "a");
printf("Donner le nombre de lignes a ajouter : ");
scanf("%d", &n);
printf(" Saisir les nouvelles lignes : \n");
for(i = 0; i < n+1; i++)
{
fgets(str, sizeof str, stdin);
fputs(str, fptr);
}
fclose (fptr);

fptr = fopen (fname, "r");


printf("\n Le nouveau contenu du fichier %s est :\n",fname);
str1 = fgetc(fptr);
while (str1 != EOF)
{
printf ("%c", str1);
str1 = fgetc(fptr);
}
printf("\n\n");
fclose (fptr);

return 0;
}

2/7
Exercice 3 :
#include <stdio.h>
#include <stdlib.h>
main()
{

char NOM_FICH[] = "Nombres.txt";


FILE *FICHIER;

int NOMBRE;
int N;
long SOMME;

FICHIER = fopen(NOM_FICH, "r");


if (!FICHIER)
{
printf("\aERREUR: Impossible d'ouvrir "
"le fichier: %s.\n", NOM_FICH);
exit(-1);
}

N=0;
SOMME=0;
while (!feof(FICHIER))
{
fscanf (FICHIER, "%d\n", &NOMBRE);
SOMME += NOMBRE;
N++;
}

fclose(FICHIER);

printf("Le fichier %s contient %d nombres.\n", NOM_FICH, N);


printf("La somme des nombres est : %ld\n", SOMME);
printf("La moyenne des nombres est : %f\n", (float)SOMME/N);
return 0;
}

3/7
Exercice 4 :
#include <stdio.h>
#include <string.h>

typedef struct
{
char nom[10];
char prenom[10];
int tel;
} personne;

void ajout_personne (FILE *rep);


void affiche_ensemble_personne(FILE *rep);
void trouve_numero_personne(FILE *rep, char *nom);
void menu(FILE *rep);

void ajout_personne (FILE *rep) {


personne pers;
printf ("nom : ");
scanf ("%s", pers.nom);
printf ("prenom : ");
scanf ("%s", pers.prenom);
printf ("tel : ");
scanf ("%d", &pers.tel);
fwrite (&pers, sizeof(pers), 1, rep);
}

void affiche_ensemble_personne(FILE *rep) {


personne pers;

fseek(rep,0,SEEK_SET);
while (fread(&pers,sizeof(personne),1,rep) != 0) {
printf("nom .....: %s\n",pers.nom);
printf("prenom ..: %s\n",pers.prenom);
printf("tel .....: %d\n\n",pers.tel);
}
}

void trouve_numero_personne(FILE *rep, char *nom) {


personne pers;
int trouve = 0;

printf("Donnez le nom : ");


scanf("%s",nom);

4/7
fseek(rep, 0, SEEK_SET);
while (fread(&pers, sizeof(personne), 1, rep) != 0 && trouve==0) {
if (strcmp(pers.nom, nom) == 0)
{
printf("Tel de %s %s : %d\n\n",pers.prenom, pers.nom, pers.tel);
trouve =1;
}
}
if (trouve == 0) {
printf("Ce nom n'existe pas\n");
}
}

void menu(FILE *rep) {


char reponse, nom[10];
do {
printf("AJOUTER.... : A\n");
printf("LISTER..... : L\n");
printf("CHERCHER....: T\n");
printf("QUITER......: Q\n");
printf(" votre choix: ");
scanf(" %c",&reponse);
switch(reponse) {
case 'a':case 'A': ajout_personne (rep);
break;
case 'l':case 'L': affiche_ensemble_personne(rep);
break;
case 't':case 'T': trouve_numero_personne(rep, nom);
}
}
while( reponse != 'q' && reponse != 'Q');
}

int main () {
FILE *repertoire;

repertoire = fopen ("repertoire.txt", "a+");


menu(repertoire);
fclose (repertoire);
return 0;
}

5/7
Exercice 5 :
#include <stdio.h>
#include <stdlib.h>

int taille = 0;

typedef struct
{
char marque [50];
char modele [50];
int prix;
}Voiture;

void remplir(Voiture *TabV, int n)


{
int i;
for(i = 0; i < n; i ++)
{
printf("Donner la marque : ");
getchar();
gets((TabV + i)->marque); // gets(TabV[i].nom);
printf("Donner le modele : ");
gets((TabV + i)->modele);
printf("Donner le prix : ");
scanf("%d",&(TabV + i)->prix);
}
}

void affiche(Voiture *TabV , int n)


{
int i;
for(i = 0; i < n; i ++)
{
printf("%s : %s : %d\n", (TabV + i)->marque, (TabV + i)->modele, (TabV +i)->prix);
}
}

void save(Voiture *TabV , int n, char * fichier)


{
int i;
FILE * out = fopen(fichier, "w");
for(i = 0; i < n; i ++)
{
fprintf(out,"%s : %s : %d\n", (TabV + i)->marque, (TabV + i)->modele, (TabV +i)->prix);
}
fclose(out);
}

6/7
Voiture * load (char * fichier)
{
Voiture *v = (Voiture *)malloc(sizeof(Voiture));
FILE * in = fopen(fichier, "r");
while(fscanf(in, "%s : %s : %d", &v[taille].marque, &v[taille].modele, &v[taille].prix) == 3)
{
taille++;
realloc(v, taille + 1);
}
return v;
}

main()
{
int n,i;
Voiture *v = NULL;
char * fichier = (char *)malloc(100* sizeof(char));
puts("Donner le nombre des voitures : ");
scanf("%d", &n);
v = (Voiture *) malloc(n * sizeof(Voiture));
remplir(v, n);
puts("La liste des voitures : ");
affiche(v, n);
puts("Donner le nom du fichier :");
getchar();
gets(fichier);
save(v, n, fichier);
free(v);
puts("Liste a partir du fichier : ");
Voiture *listeV = load(fichier);
for(i = 0; i < taille; i++)
printf("%s : %s : %d\n", (listeV + i)->marque, (listeV + i)->modele, (listeV + i)->prix);
}

7/7

Vous aimerez peut-être aussi