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   -
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;


}

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
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
0
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 !!!!!!!!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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;
}

0
M-crew Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   5
 
Est ce que vouez trouvez le ficher phsique dans l unité de stokage..car osii il marche mais dans le fichier stoker j trouve pas d enregistrement!!!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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:\\...
0
M-crew Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   5
 
osii je trouve le fichier phsique mais 2 cas la 1ér si j le declare avec dans c je l trouve avec 0 k sa ve dire pas de contenu ou si je le trouve dans le fichier bin du turbo c++ je trouve des ecriture anormall ????????
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > M-crew Messages postés 403 Date d'inscription   Statut Membre Dernière intervention  
 
Que tu trouves 0k, effectivement, c'est pas normal.
Par contre pour l'écriture "anormal" comme tu dis, c'est ce qu'on appelle un fichier binaire. Et c'est normal puisque tu utilises fwrite.
0
M-crew Messages postés 403 Date d'inscription   Statut Membre Dernière intervention   5 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
Wé c etait réglais le blém..Grand Merci..Il Me Manque Mantenat Que Le Mode Read pour que je peux lire le contnat!!!
0