View Full Version : [C] - salvare vettore e lista in un file binario
Mr NiKo Hyde
13-07-2012, 17:37
ciao, mi servirebbe sapere come salvare queste 2 strutture su file binari
il file preferibilmente deve essere unico, ma va bene anche salvarle su 2 file diversi
al momento sono bloccato sul salvataggio del vettore
avendo questo vettore
int vettore[270];
e salvandolo cosi
fwrite(vettore,sizeof(int),270,fpNUM);
al momento del caricamento alcuni numeri vengono persi:muro:
AnonimoVeneziano
13-07-2012, 19:30
ciao, mi servirebbe sapere come salvare queste 2 strutture su file binari
il file preferibilmente deve essere unico, ma va bene anche salvarle su 2 file diversi
al momento sono bloccato sul salvataggio del vettore
avendo questo vettore
int vettore[270];
e salvandolo cosi
fwrite(vettore,sizeof(int),270,fpNUM);
al momento del caricamento alcuni numeri vengono persi:muro:
Posta tutto il codice
Mr NiKo Hyde
13-07-2012, 21:22
il codice è troppo lungo :S si tratta di un giochino in c
cmq sono riuscito a salvare il vettore nel file binario, ora tocca alla lista :S
salvare questa lista in un file binario
typedef struct player{
int ID;
int fiches;
int cartelle;
struct player* next;
char nome[DIM_NOME];
int dado;
int cartelleP;
}player;
consigli? :muro:
Mr NiKo Hyde
14-07-2012, 06:09
#include <stdio.h>
#include <stdlib.h>
typedef struct player{
int ID;
int fiches;
int cartelle;
struct player* next;
char nome[12];
int dado;
int cartelleP;
}player;
void crea (player*);
void salva(player*);
void carica(player*);
int main(int argc, char *argv[])
{
player*giocatore;
crea(giocatore);
salva(giocatore);
system("PAUSE");
return 0;
}
void crea(player*giocatore)
{
int i;
player*punt;
/**CREO PLAYER ONE**/
giocatore=(struct player*)malloc(sizeof(struct player));
giocatore->ID=1;
printf("\n\n\t\tInserisci il nome del player %d: ", giocatore->ID);
scanf("%s",giocatore->nome);
giocatore->fiches=100;
giocatore->cartelle=0;
/**CREO ALTRI PLAYERS**/
punt=giocatore;
for(i=1; i<2; i++)
{
punt->next=(struct player*)malloc(sizeof(struct player));
punt=punt->next;
punt->ID=i+1;
printf("\n\t\tInserisci il nome del player %d: ", punt->ID);
scanf("%s",punt->nome);
punt->fiches=100;
punt->cartelle=0;
punt->next=NULL;
}
}
void salva(player*giocatore)
{
FILE*fpPlay;
player*punt;
fpPlay=fopen("01-play.dat","wb");
punt=giocatore;
int i;
for (i=0;i<2;i++)
{
if(fwrite(&punt,sizeof(player),1,fpPlay)!=1)
{
printf("errore");
return;
}
//system("pause");
punt=punt->next;
}
}
void carica(player*giocatore)
{
FILE*fpPlay;
fpPlay=fopen("01-play.dat","rb");
player*prec;
player*punt;
int j;
//player*giocatore;
giocatore=(struct player*)malloc(sizeof(player));
fread(giocatore,sizeof(player),1,fpPlay);
punt=giocatore;
for(j=1;j<2;j++)
{
punt->next=(struct player*)malloc(sizeof(player));
punt=punt->next;
fread(punt,sizeof(player),1,fpPlay);
punt->next=NULL;
}
fclose(fpPlay);
}
Mr NiKo Hyde
14-07-2012, 16:50
mhmm no, avevo provato questa modifica ma nn andava lo stesso
ho riscritto tutto e ho salvato i campi uno alla volta, e cosi funziona
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.