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

Fermé
Immma - 14 mai 2007 à 15:53
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 16 mai 2007 à 13:51
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
A voir également:

7 réponses

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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
14 mai 2007 à 16:23
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
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
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
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
15 mai 2007 à 14:23
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
16 mai 2007 à 01:25
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
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
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
16 mai 2007 à 13:51
Ben de rien :-) Est ce qu'on peut considérer le problème comme résolu ou tu as d'autres questions ?
0