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

  FORUM HardWare.fr
  Programmation

  prog en C a corriger pour VENDREDI !!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

prog en C a corriger pour VENDREDI !!!

n°111779
lordankou
Posté le 13-03-2002 à 22:37:12  profilanswer
 

bon étant donné que ces put1 de salles unix sont totalement occupé je peux pas corriger mon prog. Donc bah j'ai besoin de vous !!! le but de ce prog ce de prendre des chiffres dans un fichier et de les traiter de la façon suivante :
pour un 0 on stop tout et on affiche les résultats avant d'enregistrer.
pour un 1 : une voiture passe et on incrément le nombre de voiture.
pour un 2 : c une unité de temps. bref un 2 peut correspondre à 1 sec par exemple. c le temps de passage entre deux véhicules. on gardera en mémoire le temps maximale séparant deux véhicule (c'est à dire le nombre maximale de 2 entre deux 1 ou entre un 1 et un 0).
Bon bah voilà le prog now :  
 
#include <stdio.h>
#include <stdlib.h>
main()
{
 FILE *fichier_entre ;
 FILE *fichier_sortie ;
 int entier_lu ;
 int entier_ecrit ;
 char chemin_entre[80] ;
 char chemin_sortie[80] ;
 int tpsVehicule = 0, tpsVehiculeBoucle = 0, tpsTotal = 0, tpsVehiculeTemp = 0, nbrErrone = 0, nbVehicule = 0 ;
 
 /* Saisie des noms des fichiers */
 printf("\033[2J" ) ;  
 printf("Entrer le nom du fichier d'entree : " ) ;
 gets(chemin_entre) ;
 if ((fichier_entre = fopen(chemin_entre, "r" )) != null)
  {
    printf("\nLe fichier n'existe pas" );
    exit ;
  }
 while ((entier_lu = fgetc(fichier_entre)) != EOF || 0)  
  {
    switch(entier_lu)
      {
        case 0 : break ;
        case 1 : {  
            nbVehicule++ ;
            if tpsVehicule < VehiculeTemps  
              {
                tpsVehicule = tpsVehiculeTemp ;
                tpsVehiculeTemp = 0;
              }
            break ;
             }
        case 2 : {
            tpsVehiculeTemp++ ;
            tpsTotal++ ;
            break ;
             }
        default : {
             printf("\nNombre errone !" ) ;
             nbrErrone++ ;
             break ;
           }
       }
  }
 fclose(fichier_entre) ;
 printf("\033[2J" ) ;  
 printf("Temps Total : %d.", &tpsTotal) ;
 printf("\nNombre de vehicule passe : %d.", &nbVehicule) ;
 printf("\nTemps vehicule : %d.", &tpsVehicule) ;
 printf("\nNombre errone entre : %d.", &nbrErrone) ;
 printf("\n\nEntre le chemin de sortie : " ) ;
 gets(chemin_sortie) ;
 fichier_sortie=fopen(chemin_sortie, "w" ) ;
 fputc(tpsTotal, fichier_sortie) ;
 fputc(tpsVehicule, fichier_sortie) ;
 fputc(nbrErrone, fichier_sortie) ;
 fclose(fichier_sortie) ;
 printf("\nEnregistrement finit." ) ;
}


---------------

mood
Publicité
Posté le 13-03-2002 à 22:37:12  profilanswer
 

n°111800
chrisbk
-
Posté le 13-03-2002 à 23:33:27  profilanswer
 

Ben voyons

n°111804
robbystar
My baby got the bends
Posté le 13-03-2002 à 23:49:20  profilanswer
 

Tu doutes de rien toi  :lol:


---------------
Yoko, our beloved Meuh - R.I.P ( 27/06/2004 )
n°111808
HappyHarry
Posté le 13-03-2002 à 23:55:20  profilanswer
 

ben deja  
 

Citation :

if ((fichier_entre = fopen(chemin_entre, "r" )) != null)
 {  
   printf("\nLe fichier n'existe pas" );  
   exit ;  
 }  


 
c un peu louche

n°111809
HappyHarry
Posté le 13-03-2002 à 23:56:54  profilanswer
 

et sur le 0 tu sors pas

n°111839
lordankou
Posté le 14-03-2002 à 07:09:46  profilanswer
 

petit modification :  
 
#include <stdio.h>
#include <stdlib.h>
main()
{
 FILE *fichier_entre ;
 FILE *fichier_sortie ;
 int entier_lu ;
 int entier_ecrit ;
 char chemin_entre[80] ;
 char chemin_sortie[80] ;
 int tpsVehicule = 0, tpsVehiculeBoucle = 0, tpsTotal = 0, tpsVehiculeTemp = 0, nbrErrone = 0, nbVehicule = 0 ;
 
 /* Saisie des noms des fichiers */
 printf("\033[2J" ) ;  
 printf("Entrer le nom du fichier d'entree : " ) ;
 gets(chemin_entre) ;
 if ((fichier_entre = fopen(chemin_entre, "r" )) != null)
  {
    printf("\nLe fichier n'existe pas" );
    exit ;
  }
 while ((entier_lu = fgetc(fichier_entre)) != EOF || 0)  
  {
    switch(entier_lu)
      {
        case 0 : {
            exit ;
            break ;
             }  
        case 1 : {  
            nbVehicule++ ;
            if tpsVehicule < VehiculeTemps  
              {
                tpsVehicule = tpsVehiculeTemp ;
                tpsVehiculeTemp = 0;
              }
            break ;
             }
        case 2 : {
            tpsVehiculeTemp++ ;
            tpsTotal++ ;
            break ;
             }
        default : {
             printf("\nNombre errone !" ) ;
             nbrErrone++ ;
             break ;
           }
       }
  }
 fclose(fichier_entre) ;
 printf("\033[2J" ) ;  
 printf("Temps Total : %d.", &tpsTotal) ;
 printf("\nNombre de vehicule passe : %d.", &nbVehicule) ;
 printf("\nTemps vehicule : %d.", &tpsVehicule) ;
 printf("\nNombre errone entre : %d.", &nbrErrone) ;
 printf("\n\nEntre le chemin de sortie : " ) ;
 gets(chemin_sortie) ;
 fichier_sortie=fopen(chemin_sortie, "w" ) ;
 fputc(tpsTotal, fichier_sortie) ;
 fputc(tpsVehicule, fichier_sortie) ;
 fputc(nbrErrone, fichier_sortie) ;
 fclose(fichier_sortie) ;
 printf("\nEnregistrement finit." ) ;
}


---------------

n°111866
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-03-2002 à 09:15:37  profilanswer
 

LordAnkou a écrit a écrit :

 
 while ((entier_lu = fgetc(fichier_entre)) != EOF || 0)  
  {
    switch(entier_lu)
      {
        case 0 : {
            exit ;
            break ;

             }  
         




 
EOF || 0 ???? moi j'écrirais plutot :
while ((entier_lu = fgetc(fichier_entre)) != EOF || (entier_lu = fgetc(fichier_entre)) != 0)
 
quant au break après l'exit, je doute de son utilité

 

[jfdsdjhfuetppo]--Message édité par Harkonnen--[/jfdsdjhfuetppo]

n°111951
bjone
Insert booze to continue
Posté le 14-03-2002 à 11:30:24  profilanswer
 

hors-sujet, mais moi j'écrirais plustôt:
 
while( entier_lu = fgetc(fichier_entre), !feof(fichier_entre) )
{
}
c encore plus propre.
le EOF est déclenché lorsque l'on dépasse la fin d'un fichier, non pas quand on lit le dernier octet. (mais normallement l'autre écriture doit marcher)
mais surtout faire un  
(entier_lu = fgetc(fichier_entre)) != EOF
tu peut te faire baiser si l'entier_lu est un char et pas un int (et là le EOF ne rentre pas dans un char, et le compilo te dis rien et tu tournes en boucles à l'infini)

n°111992
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-03-2002 à 12:21:58  profilanswer
 

bjone a écrit a écrit :

hors-sujet, mais moi j'écrirais plustôt:
 
while( entier_lu = fgetc(fichier_entre), !feof(fichier_entre) )
{
}
c encore plus propre.
le EOF est déclenché lorsque l'on dépasse la fin d'un fichier, non pas quand on lit le dernier octet. (mais normallement l'autre écriture doit marcher)
mais surtout faire un  
(entier_lu = fgetc(fichier_entre)) != EOF
tu peut te faire baiser si l'entier_lu est un char et pas un int (et là le EOF ne rentre pas dans un char, et le compilo te dis rien et tu tournes en boucles à l'infini)  




 
rien à ajouter  :jap:  :jap:

n°111995
bjone
Insert booze to continue
Posté le 14-03-2002 à 12:29:16  profilanswer
 

hof c juste une chtite convention perso pour ne pas me faire baiser lors de tests de boucles, idem j'aime bien pour les ouvertures de fichiers
 
if( hdl=fopen(file,"r" ), !hdl )
    perror(file),exit(1);
 
je trouve ça très lisible tout en étant compact.
fo po oublier que dans les if, while.... tu peux faire des ( op 1, op2, op3,..., condition de test)

mood
Publicité
Posté le 14-03-2002 à 12:29:16  profilanswer
 

n°111996
bjone
Insert booze to continue
Posté le 14-03-2002 à 12:30:30  profilanswer
 

au fait c quoi son problème à LordAnkou ?

n°111998
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 14-03-2002 à 12:32:28  profilanswer
 

bonne question au fait..... parce que la, à part des syntax error, je vois pas ce qui cloche  :lol:

n°112010
lordankou
Posté le 14-03-2002 à 13:13:35  profilanswer
 

bah en fait je pouvais pas le tester car toutes les salles unix sont submergés avant de rendre les progs donc bah je demandais conseil à des gens qui s'y connaissent. En tout cas merci tout le monde.  :)


---------------

n°112039
bjone
Insert booze to continue
Posté le 14-03-2002 à 14:21:50  profilanswer
 

de toutes façon, ton truc tu l'attrappes sous n'importe quel compilo sous n'importe quel os, ça devrait marcher...


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

  prog en C a corriger pour VENDREDI !!!

 

Sujets relatifs
ou trouver un prog pour stopper le temps ds un jeu (java)?[PERL] comment lancer un prog en perl c pas moi qui l'ai fait....
[mysql / C++] comment accéder à une bdd avec un prog en C/C++ ?Prog lancé au démarrage, il ne veut pas me créer un FILE stream ...
je cherche un interpreteur pcode pour compiler un prog pascal..Quel languages pour prog win32
Récupération des.INF avec un prog en C!!!envoyer un fax depuis un prog c++
urgent SVP prog d un annuaire en CQuel magazine de PROG (sans oublier materiel/actus...) lisez vous ?
Plus de sujets relatifs à : prog en C a corriger pour VENDREDI !!!


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