Rechercher : dans
Par :

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

Dernière réponse le 9 fév 2009 à 23:02:21 M-crew, le 5 fév 2009 à 23:37:20 
 Signaler ce message aux modérateurs

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;


}

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « ALGO EN C++ A CORIGER J ai Fais l effort !!!! » dans :
Vérifier si un nombre entier est un nombre premier en C Voir Définition nombre premier Algorithme 1 : les diviseurs compris entre 2 et N-1 seront testés Algorithme 2 : les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs Algorithme 3 : les diviseurs impairs jusqu'à la...
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...

1

fiddy, le 5 fév 2009 à 23:50:32

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
Google is your friend

Répondre à fiddy

2

M-crew, le 6 fév 2009 à 00:05:40

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

Répondre à M-crew

3

fiddy, le 6 fév 2009 à 00:30:02

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


Google is your friend

Répondre à fiddy

4

M-crew, le 6 fév 2009 à 01:01:44

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

Répondre à M-crew

5

fiddy, le 6 fév 2009 à 01:32:54

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:\\...
Google is your friend

Répondre à fiddy

6

M-crew, le 7 fév 2009 à 00:39:38

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

Répondre à M-crew

7

fiddy, le 7 fév 2009 à 00:42:35

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.
Google is your friend

Répondre à fiddy

8

 M-crew, le 9 fév 2009 à 23:02:21

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

Répondre à M-crew