ALGO EN C++ A CORIGER J ai Fais l effort !!!!
Résolu
M-crew
Messages postés
403
Date d'inscription
Statut
Membre
Dernière intervention
-
M-crew Messages postés 403 Date d'inscription Statut Membre Dernière intervention -
M-crew Messages postés 403 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
le voila l algo il demande d sotker des enregisteremenr et puis supprimer et ajouter..mais mon blém c'est que quand je vais pour voir l fichier si il est creé j l trouve mais vide..sans enregistrement
#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
/******************************************************/
/* Phase declaration de variable et d'initialisation */
/******************************************************/
FILE *flivre;
struct livre
{
int reflivre;
char tlivre[20];
int nbexp;
};
struct livre l1;
/*****************************************************/
/* Phase Traitements */
/*****************************************************/
int main()
{
if (fopen("d:\\livre.dat","a")==NULL)
{
printf("Le fichier n'a pu être ouvert");
exit(1);
}
printf("reference livre :");
scanf("%d",&l1.reflivre);
printf("titre livre : ");
scanf("%s",&l1.tlivre);
printf("nombre exp : ");
scanf("%d",&l1.nbexp);
printf("%d\n",l1.reflivre);
printf("%s\n",l1.tlivre);
printf("%d",l1.nbexp);
fwrite(&l1,sizeof(l1),1,flivre);
fclose(flivre);
return 0;
}
le voila l algo il demande d sotker des enregisteremenr et puis supprimer et ajouter..mais mon blém c'est que quand je vais pour voir l fichier si il est creé j l trouve mais vide..sans enregistrement
#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
/******************************************************/
/* Phase declaration de variable et d'initialisation */
/******************************************************/
FILE *flivre;
struct livre
{
int reflivre;
char tlivre[20];
int nbexp;
};
struct livre l1;
/*****************************************************/
/* Phase Traitements */
/*****************************************************/
int main()
{
if (fopen("d:\\livre.dat","a")==NULL)
{
printf("Le fichier n'a pu être ouvert");
exit(1);
}
printf("reference livre :");
scanf("%d",&l1.reflivre);
printf("titre livre : ");
scanf("%s",&l1.tlivre);
printf("nombre exp : ");
scanf("%d",&l1.nbexp);
printf("%d\n",l1.reflivre);
printf("%s\n",l1.tlivre);
printf("%d",l1.nbexp);
fwrite(&l1,sizeof(l1),1,flivre);
fclose(flivre);
return 0;
}
A voir également:
- ALGO EN C++ A CORIGER J ai Fais l effort !!!!
- Algo du cheval - Forum Programmation
- Aide : algo palindrome - Forum Programmation
- Demande d'algo Mastermind - Forum Programmation
- Aide pour exercice algo - Forum Algorithmes / Méthodes
- Algo de Huffman en ADA - Forum Windows
3 réponses
Salut,
if (fopen("d:\\livre.dat","a")==NULL)
Il ne faut pas oublier de définir flivre.
Sinon, ce n'est pas du C++ mais du C ça ;).
Pas besoin d'inclure conio.h, ni io.h.
Et enfin, évite les variables globales. Ramène tout ça dans ton main ;)
Cdlt
if (fopen("d:\\livre.dat","a")==NULL)
Il ne faut pas oublier de définir flivre.
if ((flivre=fopen("d:\\livre.dat","a"))==NULL)
Sinon, ce n'est pas du C++ mais du C ça ;).
Pas besoin d'inclure conio.h, ni io.h.
Et enfin, évite les variables globales. Ramène tout ça dans ton main ;)
Cdlt
M-crew
Messages postés
403
Date d'inscription
Statut
Membre
Dernière intervention
5
J ai fais tous ce que t dis ..mais toujour je trouve a la fin le fichier dans l c avec 0 b...s ve dire la phase d enregistrement ne se valide pas !!!!!!!!!
Bizarre, car ce code marche sur ma machine :
#include <stdio.h> #include <stdlib.h> struct livre { int reflivre; char tlivre[20]; int nbexp; }; int main(void) { FILE *flivre; struct livre l1; flivre=fopen("ta.dat","a"); if(flivre==NULL) { printf("Le fichier n'a pu être ouvert"); exit(1); } printf("reference livre :"); scanf("%d",&l1.reflivre); printf("titre livre : "); //attention cela s'arrêtera au premier espace //et si tu rentres 20 caractères ou plus, cela //peut bugguer scanf("%s",&l1.tlivre); printf("nombre exp : "); scanf("%d",&l1.nbexp); printf("%d\n",l1.reflivre); printf("%s\n",l1.tlivre); printf("%di\n",l1.nbexp); fwrite(&l1,sizeof(l1),1,flivre); fclose(flivre); return 0; }
Oui, le fichier est bien présent physiquement. Il a un contenu binaire (le contenu de l'enregistrement), mais ceci est normal. D'ailleurs, tu devrais ouvrir le fichier en binaire avec le mode "ab".
Supprimer ton fichier livre.dat et recommence. Sinon teste sans mentionner C:\\...
Supprimer ton fichier livre.dat et recommence. Sinon teste sans mentionner C:\\...