Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2131 connectés 

  FORUM HardWare.fr
  Programmation
  C

  les fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

les fichiers

n°1701865
pepito17
Posté le 13-03-2008 à 16:34:37  profilanswer
 

Bonjour je dois créer un dossier de stockage et de gestion pour une entreprise pour l'école, seulement voila j'ai un problème avec mon ouverture et ma fermeture de fichier.
 
Voyez vous ce qui ne vas pas ??
 
Merci pour votre aide qui m'est tres precieuse !!
 
code :
 
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
FILE * fnumero=NULL;
 
do
{
 
 system("cls" );
 printf("\t\t1.  Ajout de stockages\n\n\t\t2.  Affichage séquentiel du fichier \n\n\t\t3.  Quitter \n" );
 scanf ("%d", &n);
 fnumero = fopen("A:\\Stockages.dat", "w" );
 system("cls" );
 
 switch (n)
 {  
 
  case 1:
 
         
   while (nproduit<100 && EncodeProduit(&produit[nproduit], numprod, nproduit))  
   {
    nproduit++;              
    system("cls" );
   }
          Indexation (produit, index, nproduit);
         
       
   break;
         
 
  case 2:
         
   z=-1;
   do
   {
         
    z++;
    AfficheProduit (produit, nproduit, z);       // 2eme fonction
         
         
    printf("Afficher le suivant ? (o/n) : " );
    fflush (stdin);
    scanf("%c", &enc2);
    system("cls" );  
   }
   while (enc2!='n' && z<nproduit-1);
         
 
                 break;
       
 }
     
}
while (n!=3);
 
fclose(fstockages);
 
}

mood
Publicité
Posté le 13-03-2008 à 16:34:37  profilanswer
 

n°1701866
pepito17
Posté le 13-03-2008 à 16:36:17  profilanswer
 

j'ai oublier de preciser, le code envoyé n'est pas complet du tout, les variables sont toutes declarées, ... C'est au niveau de l'ouvertue et de la fermeture de fichier que j'ai des problèmes.
 
Merci beaucoup

n°1701870
rengzehn
Posté le 13-03-2008 à 16:46:04  profilanswer
 

tu as quel  probleme ? quel message d'erreur parceque là il en manque plein du code. Quel fichier pose problème ?
fclose(fstockages);  ==> il sort d'ou lui ? fnumero tu l'ouvres mais tu t'en sers où ??

 

ps utilise des balises de code pour mettre le tiens, ça aide à lire parceque là sdur. (On indente à l'horizontal pas à la verticale ;p)


Message édité par rengzehn le 13-03-2008 à 16:48:02
n°1701876
pepito17
Posté le 13-03-2008 à 16:53:59  profilanswer
 

j'ai visual studio 6.0. ben j'ai pas de message d'erreur mais quand je l'execute, j'entre "1" pour entrer dans le premier menu ensuite j'aimerai sortir de ce sous menu, je tape "3" et la, il me met, dos4.exe a cesser de fonctionner. si j'enleve les lignes concernant les fichiers, ca va sans problème mais une fois que c'est ligne de code (fopen et fclose) sont ecrite, j'ai cette erreur la. fstockage est un deuxieme fichier, il faut modifier le FILE * fnumero=NULL par FILE * fstockages=NULL.
 
Voila

n°1701927
rengzehn
Posté le 13-03-2008 à 17:29:44  profilanswer
 

Un passage par http://forum.hardware.fr/hfr/Progr [...] 0261_1.htm s'impose à l'avenir...
 
Donne le bon code, pas des copiers/collés steup parceque là c'est dur de comprendre, tu ouvres un fichier que tu n'utilises pas et t'en fermes un autre. Indentes le bien en utilisant des balises de code du forum. Merci.

n°1701959
pepito17
Posté le 13-03-2008 à 18:11:27  profilanswer
 

ok voila la totalité de mon code, mais comme je suis en trein de faire plein de changement dans mon code il y aurai des chose pas correct bein evidement mais j'aimerai comprendre pourquoi ca ne vas pas : voila le code mais sans les fonctions. Le code contiendra les appel des fonction, la declaration de la fonction mais pas le code de la fonction. Ici c'est inutile, il n'y en a pas besoin.... Voici le code :  
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
 
struct produit {    //declaration de la structure
 long NumProduit;
 char NomProduit[30];
 char UniteMesure[10];
 float Prix;
 char TypeProduit[20];
 int categorie;
   
};
 
 
struct ind {
 char NomProduit[30];
 long NumProduit;
 long Posi;
 
};
 
struct Stockage {
 long NumProduit;
 long NumDepot;
 long QuantiteStockee;
 
};
 
int EncodeProduit (struct produit *, long [], int); // Toutes les fonctions utilisées
short RechercheNumProd (int, int, long []);
void InsertionNumProd (int, long[], int);
void AfficheProduit (struct produit[], int, int);
void Indexation (struct produit[], struct ind [], int);
void AfficheIndex (struct produit [], struct ind [], int, int);
void Recherche (struct produit [], struct ind [], int, char[]);
//void InsertionInd (
//void SuppressionInd (
 
 
int main ()
 
{
 int nproduit=0;      // variables declarées
 int i, n, z, rep;
 long numprod[100];
 char enc2, rech[30];
 FILE * fnumero=NULL;
 FILE * fstockages=NULL;
 
 struct ind index[100];
 struct produit produit[100];
 
 
 i=0;
 do
 {
  system("cls" );
  printf("\t\t\t\tMenu\n\n\n\t\t1.  Produits \n\n\t\t2.  Stockages \n\n\t\t3.  Quitter\n" );
  scanf("%d", &rep);
  system("cls" );
 
  switch (rep)
  {
   case 1:
     
     do
     {
 
      system("cls" );
      printf("\t\t1.  Ajout de produits en fin de fichier\n\n\t\t2.  Afficher les caractéristiques des produits \n\n\t\t3.  Afficher les caractéristiques des produits suivant l'index \n\n\t\t4.  Rechercher un produit \n\n\t\t5.  Quitter \n" );
      scanf ("%d", &n);
      fnumero = fopen("A:\\Produits.dat", "w" );
      system("cls" );
 
      switch (n)
      {  
 
       case 1:
 
         
        while (nproduit<100 && EncodeProduit(&produit[nproduit], numprod, nproduit))  
        {
         nproduit++;                
         system("cls" );
        }
        Indexation (produit, index, nproduit);
         
       
        break;
         
 
       case 2:
         
        z=-1;
        do
        {
         
         z++;
         AfficheProduit (produit, nproduit, z);      
         
         
         printf("Afficher le suivant ? (o/n) : " );
         fflush (stdin);
         scanf("%c", &enc2);
         system("cls" );  
 
        }
        while (enc2!='n' && z<nproduit-1);
         
 
        break;
       
       case 3:
 
         
        z=-1;
        do
        {
         z++;
         AfficheIndex (produit, index, nproduit, z);  
     
         printf("Afficher le suivant ? (o/n) : " );
         fflush (stdin);
         scanf("%c", &enc2);
         system("cls" );
        }
        while(enc2!='n' && z<nproduit-1);
         
        break;
       
       case 4:
 
        printf("Veuillez entrer le nom du produit recherché : " );
        fflush (stdin);
        gets (rech);
 
        Recherche (produit, index, nproduit, rech);
 
         
        break;
      }
     
     }
     while (n!=5);
 
     fclose(fnumero);
 
     break;
 
   case 2:
     
     do
     {
 
      system("cls" );
      printf("\t\t1.  Ajout de stockages\n\n\t\t2.  Affichage séquentiel du fichier \n\n\t\t3.  Quitter \n" );
      scanf ("%d", &n);
      fnumero = fopen("A:\\Stockages.dat", "w" );
      system("cls" );
 
      switch (n)
      {  
 
       case 1:
 
         
        while (nproduit<100 && EncodeProduit(&produit[nproduit], numprod, nproduit))  
        {
         nproduit++;                  
         system("cls" );
        }
        Indexation (produit, index, nproduit);
         
       
        break;
         
 
       case 2:
         
        z=-1;
        do
        {
         
         z++;
         AfficheProduit (produit, nproduit, z);        
         
         
         printf("Afficher le suivant ? (o/n) : " );
         fflush (stdin);
         scanf("%c", &enc2);
         system("cls" );  
 
        }
        while (enc2!='n' && z<nproduit-1);
         
 
        break;
       
      }
     
     }
     while (n!=3);
 
     fclose(fstockages);
   
     break;
  }
 }
 while (rep!=3);
 
 if (rep==3)
 {
  printf("\n\t\t\tFin du programme... \n\n\n\tA bientot. " );
 }
 
 system("pause" );
}
 
Merci pour votre aide !

n°1702034
_darkalt3_
Proctopathe
Posté le 13-03-2008 à 19:56:24  profilanswer
 

balises code :o


---------------
Töp of the plöp
n°1702615
ptitchep
Posté le 14-03-2008 à 17:11:23  profilanswer
 

gets c'est le mal.
 
Tu fermes un fichier que tu n'as pas ouvert. (fstockages)
Si y'avait des balises de code on saurait où exactement est le problème mais c'est assez illisible.
Vérifie tes ouvertures et fermetures. Avec tes boucles, tu ouvres plusieurs fois un fichier sans le fermer ou inversement... et mets des balises de code.


---------------
deluser --remove-home ptitchep

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  les fichiers

 

Sujets relatifs
Comment enlever les accents de noms de fichiers ?VBA EXCEL liste déroulante entre deux fichiers
Container pour les noms de fichiers avec JAVA12000 fichiers dans un repertoire
Java - fichiers - rechercheprogramme pour supprimer fichiers après 30jrs
Récupérer des fichiers d'un ftp depuis un lien sur un site web ?[Algo WEB] Suppression de fichiers générés pour téléchargement unique
[PHP] Récupérer les noms de tous les fichiers 
Plus de sujets relatifs à : les fichiers


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)