ALGO EN C++ A CORIGER J ai Fais l effort !!!!

Résolu/Fermé
M-crew Messages postés 403 Date d'inscription samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 - 5 févr. 2009 à 23:37
M-crew Messages postés 403 Date d'inscription samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 - 9 févr. 2009 à 23:02
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;


}
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
5 févr. 2009 à 23:50
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 samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 5
6 févr. 2009 à 00:05
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
6 févr. 2009 à 00:30
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 samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 5
6 févr. 2009 à 01:01
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
6 févr. 2009 à 01:32
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 samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 5
7 févr. 2009 à 00:39
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836 > M-crew Messages postés 403 Date d'inscription samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016
7 févr. 2009 à 00:42
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 samedi 18 octobre 2008 Statut Membre Dernière intervention 24 mars 2016 5 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
9 févr. 2009 à 23:02
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