begin process at 2012 05 29 18:52:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

pb de sauvegarde


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb de sauvegarde

lundi 15 mai 2006 à 21:11:02 | pb de sauvegarde

blinix123

Bonjour,
Alors voila, j'ai mon programme sous C/C++ qui fonctionne, je bosse avec un tableau de type, (gestion d'une vidéotheque), et j'aimerais sauvegarder ce qui à deja était saisie !!!
J'ai mon prof qui nous a donné ce code mais je galere un peu a le comprendre, est-il bon ? comment faire avec MON programme ? etc ?

struct eleve
{
 int Numero;
 char Nom[20];
 char Prenom [20];
};

//memorisation
void memorisation(struc eleve tableau[], int nombre)
{
 int I;
 FILE *pointeureleves;
 pointeureleves=fopen("eleves.dat","w");
 if(pointeureleves==null)
 { 
  printf'"ouverture du fichier impossible");
 }
 else
 {
  for(I=0;i<nombre;i=i+1)
  {
   if(fwrite(&tableau[I],sizeof(struct eleve), 1, pointeureleves) ==-1)
   {
    printf("erreur d'ecriture");
   }
  }
  fclose(pointeureleves);
 }
}

/chargement
void chargement(struct eleve tableau[], int *nombre)
{
 FILE*pointeureleves;
 pointeureleves=fopen("eleves.dat", "r");
 if (pointeureleves == NULL)
 {
  print("ouverture du fichier impossible");
 }
 else
 {
  fread(&tableau[*nombre],sizeof(struct eleve),1, pointeureleves);
  while (! feof(pointeureleves))
  {
   *nombre = *nombre + 1;
   fread (&tableau[*nombre],sizeof(struct eleve),1, pointeureleves);
  }
  fclose(pointeureleves);
 }
}


//pgm principal

void main ()
{
 int I, N=0;
 struct eleve tab[50];

 chargement (tab,&N);
 printf("entrer un numero ou 0 pour finir: ");
 scanf("%d",&tab[N].numero);
 while(tab[N].numero != 0)
 {
  printf("entrer un nom:");
  fflush(stdin);
  fgets(tab[N].nom, 50, stdin);
  tab[N].nom[strlen(tab[N].nom) -1]='\0';
  printf("entrer un prenom:");
  fgets(tab[N].Prenom, 50, stdin);
  tab[N].prenom[strlen(tab[N].prenom) -1]='\0';
  N=N+1;
  printf("entrer un numero ou 0 pour finir: ");
  scanf("%d",&tab[N].numero);
 }
 memorisation(tab,N);
}

vendredi 2 juin 2006 à 16:00:06 | Re : pb de sauvegarde

fauve

Membre Club

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dir.h>
#include <dos.h>

typedef struct
{
         int Numero;    /* Un champs */
         char Nom[20];
        char Prenom [20];
}eleve;
eleve tab[50];

/* Programme Principal */

void main ()
{
 int i, n=0;
 chargement (tab,&n);
 printf("entrer un numero ou 0 pour finir: ");
 scanf("%d",&tab[n].numero);
 while(tab[n].numero != 0)
 {
  printf("entrer un nom:");
  fflush(stdin);
  fgets(tab[n].nom, 50, stdin);
  tab[n].nom[strlen(tab[n].nom) -1]='\0';
  printf("entrer un prenom:");
  fgets(tab[n].Prenom, 50, stdin);
  tab[n].prenom[strlen(tab[n].prenom) -1]='\0';
  n++;                 /* n++ est équivalent à   n = n + 1 */
  printf("entrer un numero ou 0 pour finir: ");
  scanf("%d",&tab[n].numero);
 }
 memorisation(tab,n);
}

void memorisation(eleve tableau[50], int nombre)
{

    int i;
    eleve one;
    FILE *fp;
  
     fp=fopen("eleves.dat","w");
     if( fp == null )
        printf'"ouverture du fichier impossible");
     else
     {
          fread(&nombre, 2, 1, fp);
          for( i = 0 ; i < nombre ; i++)       /* i++ est équivalent à i = i + 1 */
          {
                  fwrite(&one.Numero, 2, 1, fp);
                  fwrite(&one.Nom, 20, 1, fp);
                  fwrite(&one.Prenom, 20, 1, fp);
          }           
     }
      fclose(fp);
}

void chargement(eleve *tableau[50], int *nombre)
{
         FILE *fp;
         fp = fopen("eleves.dat", "r");
         if ( fp  == NULL )
                print("ouverture du fichier impossible");
         else
         {
              fread(nombre, 2, 1, fp);
              for( i = 0 ; i < nombre ; i++)       /* i++ est équivalent à i = i + 1 */
              {
                      fread(&one.Numero, 2, 1, fp);
                      fread(&one.Nom, 20, 1, fp);
                      fread(&one.Prenom, 20, 1, fp);
              }           
         }
         fclose(fp);
}

S'il y a certaines parties de mon code que tu n'a pas compris, n'hésites pas à laisser un message sur le forum. Je te répondrais.
vendredi 2 juin 2006 à 16:02:17 | Re : pb de sauvegarde

fauve

Membre Club
erreur dans la fonction chargement : dans la boucle for, après les 3 fread, il faut absolument mettre tab[i] = one;


Cette discussion est classée dans : tableau, tab, struct, eleve, pointeureleves


Répondre à ce message

Sujets en rapport avec ce message

tableau de struct et fonction en C [ par sim51 ] Bonjour à tous. J'ai un petit problème de syntax, après plusieurs recherche sur le net, je n'ai pu ni affirmer ou ni infirmer la validation de mon cod Tableau de pointeur de strucure [ par timy94 ] Bonjour Voila mon problèmestruct ess {   char C1[10];   char C2  [5];}struct ess * Tab[10];Tab = (struct ess **) malloc (sizeof (struct ess *));strcpy Init un tableau de struct [ par larcan57 ] Bonjour,Encore une question de struct...Soit ma structure:struct test {char* test_id; char* tab[]; };j'initialise une struct:test nouveauTest = test() Problème de couleur dans tableau [ par hitachicm615 ] Bonjour,J'ai déclaré un tableau et pour le remplir par des croix ou des ronds j'ai tapé ceci dans un switchcase 1:                tab[0][5] = 'X';   Exercice sur Pointeurs, classes, héritage... [ par snoozriton ] Bonjour à tous, étant en train d'étudier le C++, j'ai quelques soucis avec un exercice. C'est un classique dont je vous donne l'énoncé : [b]1. Défini Afficher le contenu d'un tableau dans un textBox [ par mourad777 ] Bonjour à tous, J'ai un textbox dans lequel j'aimerai afficher un tableau de 5 éléments (char). J'ai tout essayé mais j'y arrive pas! :( Je programme tableau de type struct contenant des points [ par zeom ] salut , comment faire un algorithme qui détermine l'ensemble de successeurs d'un ensemble des sommets donner dans un tableau de type struct et le déco pile dynamique [ par korin221 ] Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pi remplir un nombre dans un tableau [ par alex934 ] Bonjour, j'ai besoin de votre aide :) Voila je souhaite mettre un nombre stocké(int) dans un tableau exemple: int a=132; int tab[3]; je voudrais Allocation dynamique de mémoire d'un tableau dans une fonction [ par DJfewos971 ] Bonjour a tous,mon problème est de pouvoir alloué la mémoire dynamiquement d'un tableau dans une fonction.Voici mon problème niveau Code:#include #inc


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales