begin process at 2008 05 17 06:24:45
1 173 918 membres
50 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : programmation en C [ Divers / Débutant(e) ] (waloo92i)

programmation en C le 09/05/2008 15:10:26

waloo92i
je ne sais pas comment procéder pour faire sa :

Il s'agit dans un premier temps de créer un fichier à partir du clavier ou chaque enregistrement est formé d'un nom et d'un solde, puis charger ce fichier en mémoire centrale pour le trier par ordre alphabétique avant d'écraser ce fichier avec le fichier trié.
Puis dans un deuxiéme temps il faut prévoir la modification du solde directement sur le fichier trié.

Re : programmation en C le 09/05/2008 18:06:13

BastienL21
Bonjour,
Si je comprends bien, tu voudrais créer un fichier texte dans lequel tu voudrais écrire un nom et un solde ?

si oui, voila qui pourrais peut-être t'aider :

//METTRE 2 \ pour la direction :
    fichier = fopen("C:\\RESTEDUCHEMIN\\MonFichier.txt", "a");
//si il est bien ouvert
        if (fichier != NULL)
    {
    fscanf(fichier,"%s", &VariableAInsérer);
    fclose(fichier);
    }
//si non
            if(fichier == NULL)
    {
    printf("Erreur lors de l'ouverture");
    }

Cordialement,
             Bastien
 

Re : programmation en C le 09/05/2008 18:08:48

BastienL21
ERREUR LORS DU PRECEDANT MESSAGE
-->voir ligne du code en rouge

//METTRE 2 \ pour la direction :
    fichier = fopen("C:\\RESTEDUCHEMIN\\MonFichier.txt", "a");
//si il est bien ouvert
        if (fichier != NULL)
    {
    fprintf(fichier,"%s", &VariableAInsérer);
    fclose(fichier);
    }
//si non
            if(fichier == NULL)
    {
    printf("Erreur lors de l'ouverture");
    }
//Désolé

Cordialement,
             Bastien
 

Re : programmation en C le 09/05/2008 20:52:30

waloo92i

je pense que c'est un plus compliqué que sa voila ce que j'ai fait dite moi ce que vous en pensé mais il reste des warnings que je n'arrive pas a résoudre :

<CODE>#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Tree {
       char nom[32];
       char number[32];
       struct tree * left;
       struct tree * right;
       }* root;
      
       void addItem(struct Tree *root, struct Tree *Parain, int bDir, struct Tree *Item)
       {
            if (root)
            {
                     if(strcmp(root->nom, Item->nom)<0)
                     {
                           addItem(root->left, root, 0, Item);
                     }
                     else
                       if (strcmp(root->nom, Item->nom)>0)
                       {
                           addItem(root->right, root, 1, Item);
                       }
                       else
                         if (strcmp(root->number, Item->number)<0)
                         {
                            addItem(root->left, root, 0, Item);
                         }
                         else
                         {
                             addItem(root->right, root, 1, Item);
                         }
            }
            else
            {
                if (bDir)
                    Parain->right=Item;
                    else
                    Parain->left=Item;
            }
        }
       
       
        int fCreerArbre (FILE* file)
        {
            char sBuf[128];
            struct Tree * Item;
           
            while (fgets(sBuf, 128, file))
            {
                  Item=(struct Tree*)malloc(sizeof(struct Tree));
                  sscanf(sBuf, "%s[31] %s[31]", Item->nom, Item->number);
                  Item->left=NULL;
                  Item->right=NULL;
                  if (root)
                  addItem(root, root, 0, Item);
                  else
                  root=Item;
                  }
            }
          
            int fparcoursArbre(FILE *file, struct Tree *root)
            {
                if(root)
                {
                        fparcoursArbre(file, root->left);
                        fprintf(file, "%s %s \r\n", root->nom, root->number);
                        fparcoursArbre(file, root->right);
                }
            }
            
      int main (int nargs, char ** args)
      {
          char * sInputFile;
          char * sOutputFile;
          FILE * fInputFile;
          FILE * fOutputFile;
         
          sInputFile=(char *)malloc(strlen(args[1])*sizeof(char)+1);
          strcpy(sInputFile, args[1]);
          sInputFile [strlen(args[1])];
         
          sOutputFile=(char *)malloc(strlen(args[1])*sizeof(char)+1);
          strcpy(sOutputFile, args[1]);
          sOutputFile [strlen(args[1])];
         
          fInputFile=fopen(sInputFile, "r+");
          fOutputFile=fopen(sOutputFile, "w+");
         
          fCreerArbre(fInputFile);
          fparcoursArbre(fOutputFile, root);
         
          fclose(fInputFile);
          fclose(fOutputFile);
          return 0;
          }                     
                                          
</CODE>


Re : programmation en C le 09/05/2008 21:02:20

BastienL21
Bonsoir,
Désolé mais j'ai bien peur de ne pas être à la hauteur (je débute)
Mais je peu tout de même essayer
Pourrais-tu Expliquer précisément ce que ce programme est sensé faire STP ?

Cordialement,
             Bastien
 

Re : programmation en C le 09/05/2008 21:17:26

waloo92i
Il s'agit dans un premier temps de créer un fichier à partir du clavier ou chaque enregistrement est formé d'un nom et d'un solde, puis charger ce fichier en mémoire centrale pour le trier par ordre alphabétique avant d'écraser ce fichier avec le fichier trié.
Puis dans un deuxiéme temps il faut prévoir la modification du solde directement sur le fichier trié

c'est sa qu'il est sensé faire lol je sais pas comment te l'expliquer autrement méme moi g du mal a le comprendre

Re : programmation en C le 12/05/2008 01:49:53

waloo92i

bon j'ai faciliter un peu le programme est ce que quelqu'un pourait me le corriger parce qu'il me semble qu'il y'a un probléme de segmentaion voila le code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
          char NOM_PERS[30] ;
          float solde ;
          }personne ;
int main()
{
  FILE *P_FICHIER; /* pointeur sur FILE */
  typedef struct{
          char NOM_PERS[30] ;
          float solde ;
          }personne ;
         
    int  C,NB_ENREG , i;
 
  char NOM_FICHIER[30], tab[C];
 
  personne p;
     
  /* Première partie :
     Créer et remplir le fichier */

  printf("Entrez le nom du fichier à créer : ");
  scanf("%s",&NOM_FICHIER);
  P_FICHIER = fopen(NOM_FICHIER, "a+");  /* write */
  printf("Nombre d'enregistrements à créer : ");
  scanf("%d",&NB_ENREG);
  C = 0;
  while (C<NB_ENREG)
     {
      printf("Entrez le nom de la personne : ");
      scanf("%s",p.NOM_PERS);
      fprintf(P_FICHIER, "%s ", p.NOM_PERS);
      printf("entrez un solde : ");
      scanf("%f",&p.solde);
      fprintf(P_FICHIER,"%f\n",p.solde);
      C++;
     }
  for(i=0 ; i< C ; i++){
          tab[i]==p.NOM_PERS[30] ;
          fprintf(P_FICHIER,"%s",tab[i]);
          }
            
  fclose(P_FICHIER);
    /* Deuxième partie :
     Lire et afficher le contenu du fichier */
  P_FICHIER = fopen(NOM_FICHIER, "r");  /* read */
  C = 0;
  while (!feof(P_FICHIER))
     {
      fscanf(P_FICHIER, "%s", p.NOM_PERS);
       fscanf(P_FICHIER, "%f\n",p.solde);
C++;
     }
  for(i=0 ; i< C ; i++){
          fscanf(P_FICHIER,"%s",tab[i]);
          }
     
    
  fclose(P_FICHIER);
  
   return 0;
   }



Classé sous : fichier, temps, programmation, trié, solde

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS