Utilisateur anonyme
-
15 mai 2006 à 21:11
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 2011
-
2 juin 2006 à 16:02
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 ?
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);
}
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 2 juin 2006 à 16:00
#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.