Académique Documents
Professionnel Documents
Culture Documents
/* recherche*/
Fic= fopen (« fichier produit.txt », « r ») ;
If (fic== NULL)
{
Printf (« problème d’ouverture du fichier \n») ;
}
Else
{
While (fscanf (fic, « %d %s %d %d %d», &prod. codepro, &prod. libelle, &pro. Pu, &prod.qte stock, &prod.qte
seuil) != EOF)
{
If (prod. qte stock < prod. qte seuil)
{
Printf (« code : %d\n », prod. codepro) ;
Printf (« libelle : %s\n », prod. libelle) ;
Printf (« qte stock : %d\n », prod. qte stock) ;
Printf (« qte seuil : %d\n », prod. qte seuil) ;
Printf (« prix unitaire : %d\n », prod. pu) ;
Printf (« \n\n ») ;
}
}
}
/*Fermeture du fichier*/
Fclose (fic) ;
- Modication d’un élément du fichier
Pour modifier un enregistrement on recherche d’abord cet enregistrement et si on le trouve, on utilise la fonction
réécrire (Nom_fichier, nom_enregistrement). C’est donc la fonction réécrire qui permet la modification d’un
enregistrement d’un du fichier.
Exercice :
Soit fic un fichier de produit dont chaque produit est caractérisé par un code, un libelle, un prix unitaire et sa
quantité.
Ecrire un code qui permet de modifier les informations d’un produit à partir de son code.
/* ouverture du fichier */
Ouvrir (fic) en lecture / écriture
Lire (fic, prod)
Afficher (« veuillez saisir le code du produit à rechercher »)
Lire (code)
Tant que (ff (fic) ≠Vrai Et pro. Codepro code) ≠faire
/* passer au produit suivant*/
Lire (fic, prod)
Fin tant que
Si (prod. codepro = code) alors
/* Saisie des nouvelles informations */
Afficher (« veuillez saisir le libelle »)
Lire (prod. libelle)
Exercice 2: on va écrire un programme qui permet d’éclater un fichier de produit en deux fichiers. L’un va contenir
les produits dont le prix est <100.000 et l’autre dont le prix est >50.000.
/*Ouverture du fichier*/
Fic =fopen («fichier.txt», «r»);
If (fic ==NULL)
{
Printf («Problème d’ouverture du fichier1\n»);
}
Else
{ Fic1 =fopen («fic1», «w»);
Fic2 =fopen (« ic2», «r»);
While (fscanf (fic2, «%d %s %d %d», &prod. codepro, &prod. libelle, &prod. pu, &prod. qte) !=EOF)
If (prod. pu >50000)
{
Fprintf (fic3, «%d %s %d %d\n», prod. codepro, prod. libelle, prod. pu, prod. qte);
}
Else
{
Fprintf (fic3, «%d %s %d %d\n», prod. codepro, prod. libelle, prod. pu, prod. qte);
}
}
/*Fermeture des fichiers*/
Fclose (fic1);
Fclose (fic2);
Fclose (fic3);