Dev c++... probleme de compilation et aussi d

Immma -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
J'essaye de réussir ce programme mais apparements quelques pistes me bloquent si jamais vous arrivez à les dévoiler, je vous remercie d'avance... ci joint le fichier :
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *P_TRI; /* déclaration */
char DATA [30], EVENEMENT[30];
int MOIS, JOUR, ANNEE;
int CPTE, NB_ENREG;
/* Première partie : Créer et remplir le fichier */
printf("Entrez le nom du fichier à créer : ");
scanf("%s", DATA);
P_TRI = fopen(DATA, "w"); /* Fichier ouvert en écriture */
printf("Nombre d'enregistrements à créer : ");
scanf("%d", &NB_ENREG);
CPTE = 0;
while (CPTE<NB_ENREG)
{
printf("Entrez l'évènement: ");
scanf("%s", &EVENEMENT);
printf("Entrez le jour : ");
scanf("%d", &JOUR);
printf("Entrez le mois : ");
scanf("%d", &MOIS);
printf("Entrez l'année: ");
scanf("%d", &ANNEE);
fprintf(P_TRI, "%s\n", EVENEMENT);
fprintf(P_TRI,"%d" "%d" "%d", JOUR, MOIS, ANNEE);
CPTE++;
}
fclose(P_TRI);

/* Deuxième partie :
Lire et afficher le contenu du fichier */
//while(feof(P_TRI));
P_TRI = fopen(DATA, "r+"); /* read */
CPTE = 0;
printf("Demarrage tri\n");
do
{
//printf("%s = EVENEMENT);
if(!feof(P_TRI))fscanf(P_TRI,"%s\n %d\n %d\n %d\n", &EVENEMENT,&JOUR,&MOIS,&ANNEE);else break; /* lecture de l'évènement */
printf(" %s\n ",EVENEMENT);
//if(!feof(P_TRI))fscanf(P_TRI,"%d",&JOUR); else break; /* lecture du jour */
printf("%d ",JOUR);
//if(!feof(P_TRI))fscanf(P_TRI,"%s",&MOIS);else break; /* lecture du mois */
printf("%d ",MOIS);
//if(!feof(P_TRI))fscanf(P_TRI,"%d",&ANNEE); else break; /* lecture de l'année */
printf("%d ",ANNEE);

}
while(!feof(P_TRI));
{
printf(" ok1\n");
CPTE++;
}
fclose(P_TRI);
getchar();getchar();

}

Merci encore une fois
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. Richard
     
    Je pense que l'erreur est à la ligne
    fprintf(P_TRI,"%d" "%d" "%d", JOUR, MOIS, ANNEE);

    Il y a trop de guillemets, mettre
    fprintf(P_TRI,"%d %d %d", JOUR, MOIS, ANNEE);
    0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    En effet, il y a une erreur à l'endroit indiqué par Richard. Il y a également une autre erreur : scanf("%s", &EVENEMENT); il n'a pas le "&".
    scanf("%s", EVENEMENT);. EVENEMENT est un pointeur.
    0
    1. Immma
       
      Merci ca marche ... au fait y avait aussi un probleme au niveau de : printf(" \n %s\n ",EVENEMENT);

      j avais oublié le \n et ca mal tourné... mais bon , le programme est ok ...Merci les garçons
      0
  3. Immma
     
    Si vous avez une idée de comment faire pour afficher mes evenements dans un ordre décroissant ou croissant... j ai réalisé un programme qui affiche les résultats sans les ordonner...
    0
  4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Puisque tu fais du C++ je t'invite a regarder comment s'utilisent les std::map et les std::string. Regarde en particulier l'exemple du premier lien :
    https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
    https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583

    Si tu es motivé(e) il faudrait aussi changer tout ce qui est (f)scanf, (f)printf etc... avec des flux (std::cout, std::ifstream, std::ofstream, opérateurs << et >>). Exemple :
    #include <iostream>
    
    int main(){
      int x;
      std::cout << "valeur de x ?" << std::endl;
      std::cin >> x;
      std::cout << "valeur de x : " << x << std::endl;
      return 0;
    }

    Bonne lecture
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. TDE
     
    Mais non, ce n'est pas du C++ ! Il n'y a pas une seule ligne de code C++ ! C'est du C avec une extension .cpp...
    0
  7. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Merci TDE, mais j'avais remarqué. C'est juste que pour ce que immma veut faire c'est 40 fois plus simple en C++ qu'en C et c'est pour ça que je lui conseille d'y jeter un oeil. Evidemment on peut s'en sortir avec un qsort en C mais objectivement c'est vraiment se compliquer la vie pour rien et ce sera de toute façon moins efficace et pratique qu'une map...
    0
    1. Immma
       
      Ca c'est une réponse logique que la pluparts sait pas répondre... chapeau mamiemando... Au fait, c'est finit avec ce programme et ca mal tourné puisque j ai pas pu réaliser le tri sans faire ni tableau ni structure , il reste certes une possibilité mais les structures et les tableaux facilitent la tache davantage...
      Merci mamiemando ;) ca me plait ton raisonnement quoi ;)
      0
  8. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Ben de rien :-) Est ce qu'on peut considérer le problème comme résolu ou tu as d'autres questions ?
    0