Probleme d execution

Bonjour,


Le probleme consiste a affiche le jour de connexion et le nombre de jours connectes d un ultilisateur ainsi que tmps total de cnx de cet utilisateur a partir d un fichier texte trace.txt:
tq trace.txt est definie de la sorte :code utisateur 3 carac
code logiciel 3 caractere
date jj/mm/aaaa
heure debut execution hh:mm:ss
heure fin execution hh:mm:ss
bon voila mon code source le resultat c est de tres gd nombre apperemment j ai des fautes au niveau des pointeurs mai j ai po pu les localiser aidez moi s il vous plait

void view_user (FILE *f_user, FILE *f_trace)
{
int code,code_user,j_cnx,nb_j,hh;
char s[32];

printf("donner le code de l utilisateur");
scanf(" %d", &code);

user_name(f_user,code);
while( fgets(s,37,f_trace))
{
sscanf(s,"%3d",&code_user);

sscanf(s+8,"%2d",&j_cnx);
nb_jours_cnx(f_trace,code,code_user,j_cnx,&nb_j);

}

printf("le nb de jour connectes est %d",nb_j);

heure_jours(f_trace,j_cnx,code);

}

int nb_jours_cnx(FILE *f_trace,int code,int code_user,int jour,int *nb_j)
{
int j_cnx;
char s[37];
*nb_j=1;

rewind(f_trace);
while (fgets(s,37,f_trace))
{

sscanf(s+8,"%2d", &j_cnx);
if((code==code_user)&&(jour!=j_cnx))
{

*nb_j++;
}
}

}

void heure_jours (FILE *f_trace,int j,int code)

{

int h,m,sc,h1,m1,sc1,t1,t2,j_cnx,nb,hh,code_user;
char s[32],sym[1],sym1[1],sym2[1],sym3[1];
nb=0;
rewind(f_trace);
while (( fgets(s,37,f_trace)))
{

sscanf(s+8,"%2d", &j_cnx);
sscanf(s+0,"%3d", &code_user);
if (code==code_user)

{
nb++ ;

sscanf(s+19,"%2d %c %2d %c %2d",&h,&sym,&m,&sym1,&sc);
t1=h*3600+m*60+sc;

sscanf(s+28,"%2d %c %2d %c %2d",&h1,&sym2,&m1,&sym3,&sc1);
t2=(h1*3600)+(m1*60)+sc1;

hh=(t2)-(t1);
printf("le jour de cnx est %2d \n",j_cnx);
// printf("le temps total de cnx pr ce jour est %d \n",hh);

}

}

printf("le nbre de jours connectes est %d \n",nb);

}

2 réponses

  1. Bonjour,

    Quelques conseils pour optimiser le nombre de réponses :
    1- Lire la charte, en particulier les parties "respect d'autrui" et "conseil de rédaction".
    2- Ne pas réclamer de réponse (Question de courtoisie).
    3- Écrire en Français (Question de courtoisie... encore).
    4- Mettre le code entre parenthèses pour sa lisibilité.
    5- Relire la charte encore une fois pour s'assurer de bien l'avoir comprise.

    Ce serait déjà un bon début.

    Cordialement,
    Orinym.
    1. Erratum :
      Entre balises le code*
      Au temps pour moi.

      Je précise ceci en commentaire, le délai de modification étant dépassé.

      Cdt.
    2. Le probleme consiste a affiche le jour de connexion et le nombre de jours connectes d un ultilisateur ainsi que tmps total de cnx de cet utilisateur a partir d un fichier texte trace.txt:
      tq trace.txt est definie de la sorte :code utisateur 3 carac
      code logiciel 3 caractere
      date jj/mm/aaaa
      heure debut execution hh:mm:ss
      heure fin execution hh:mm:ss
      bon voila mon code source le resultat c est de tres gd nombre apperemment j ai des fautes au niveau des pointeurs mai j ai po pu les localiser aidez moi s il vous plait

      void view_user (FILE *f_user, FILE *f_trace)
      {
      int code,code_user,j_cnx,nb_j,hh;
      char s[32];

      printf("donner le code de l utilisateur");
      scanf(" %d", &code);

      user_name(f_user,code);
      while( fgets(s,37,f_trace))
      {
      sscanf(s,"%3d",&code_user);

      sscanf(s+8,"%2d",&j_cnx);
      nb_jours_cnx(f_trace,code,code_user,j_cnx,&nb_j);

      }

      printf("le nb de jour connectes est %d",nb_j);

      heure_jours(f_trace,j_cnx,code);

      }

      int nb_jours_cnx(FILE *f_trace,int code,int code_user,int jour,int *nb_j)
      {
      int j_cnx;
      char s[37];
      *nb_j=1;

      rewind(f_trace);
      while (fgets(s,37,f_trace))
      {

      sscanf(s+8,"%2d", &j_cnx);
      if((code==code_user)&&(jour!=j_cnx))
      {

      *nb_j++;
      }
      }

      }

      void heure_jours (FILE *f_trace,int j,int code)

      {

      int h,m,sc,h1,m1,sc1,t1,t2,j_cnx,nb,hh,code_user;
      char s[32],sym[1],sym1[1],sym2[1],sym3[1];
      nb=0;
      rewind(f_trace);
      while (( fgets(s,37,f_trace)))
      {

      sscanf(s+8,"%2d", &j_cnx);
      sscanf(s+0,"%3d", &code_user);
      if (code==code_user)

      {
      nb++ ;

      sscanf(s+19,"%2d %c %2d %c %2d",&h,&sym,&m,&sym1,&sc);
      t1=h*3600+m*60+sc;

      sscanf(s+28,"%2d %c %2d %c %2d",&h1,&sym2,&m1,&sym3,&sc1);
      t2=(h1*3600)+(m1*60)+sc1;

      hh=(t2)-(t1);
      printf("le jour de cnx est %2d \n",j_cnx);
      // printf("le temps total de cnx pr ce jour est %d \n",hh);

      }

      }

      printf("le nbre de jours connectes est %d \n",nb);

      }
    3. j' espere que C est lisible maintenant :)
    4. Je ne vois pas de différence personnellement.

      Il faut que ton code soit ENTRE les balises.

      Et tant qu'à faire tu aurais pu essayer de camoufler un minimum le copier coller... :/