ALGO EN C++ A CORIGER J ai Fais l effort !!!!
Résolu
M-crew
Messages postés
477
Statut
Membre
-
M-crew Messages postés 477 Statut Membre -
M-crew Messages postés 477 Statut Membre -
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 !!!!
- Demande d'algo Mastermind - Forum Programmation
- Algo de Huffman en ADA - Forum Windows
- Algo nombres premiers - Forum Programmation
- Algo majuscules/minuscules - Forum Programmation
- Algo : combinaison a 6 caractères - Forum Programmation
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
477
Statut
Membre
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:\\...