Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-02-2014, 19:14   #1
mirkus90
Member
 
L'Avatar di mirkus90
 
Iscritto dal: Oct 2007
Città: Monopoli(BA)
Messaggi: 218
C - problema scrittura/lettura file binari

salve ragazzi...ho qualche problemino con la scrittura e lettura di un file binario. ciò che accade è che quando vado a leggere una delle due strutture che scrivo non rappresenta ciò che voglio ma presenta alcune variazioni a livello di codice ascii (ovvero spara un po di simboli e cifre a caso).

queste sono le strutture che utilizzo

Codice:
typedef struct t_gioco{
	int tabella_gioco[NUMERO_RIGHE*NUMERO_COLONNE];	
	int pips_1;
	int score_1;
	int pips_2;
	int score_2;
	char giocatore_1[12];
	char giocatore_2[12];
	int posta;
	int primo_giocatore;
	int dado_1;
	int dado_2;
}gioco;

typedef struct t_partita{
	gioco partita;
	char nome_partita[12];
}partita;
questo è il codice (anche se statico) utilizzato per inizializzare e scrivere
Codice:
void creafile(){
	int k=0;
	int i=0;
	partita vet[30];
	strcpy(vet[0].nome_partita,"mirko");
	strcpy(vet[1].nome_partita,"marta");
	strcpy(vet[2].nome_partita,"meli");
	strcpy(vet[3].nome_partita,"puffo");
	strcpy(vet[4].nome_partita,"abra");
	strcpy(vet[5].nome_partita,"vince");
	strcpy(vet[6].nome_partita,"bella");
	strcpy(vet[7].nome_partita,"brutta");
	strcpy(vet[8].nome_partita,"caspita");
	strcpy(vet[9].nome_partita,"mela");
	strcpy(vet[10].nome_partita,"toc");
	strcpy(vet[11].nome_partita,"pop");
	strcpy(vet[12].nome_partita,"abba");
	strcpy(vet[13].nome_partita,"pippo");	
	strcpy(vet[14].nome_partita,"papa");
	strcpy(vet[15].nome_partita,"trullo");
	strcpy(vet[16].nome_partita,"mamma");
	strcpy(vet[17].nome_partita,"paperino");
	strcpy(vet[18].nome_partita,"cavallo");
	strcpy(vet[19].nome_partita,"cane");
	strcpy(vet[20].nome_partita,"lucky");
	strcpy(vet[21].nome_partita,"bricciola");
	strcpy(vet[22].nome_partita,"ragno");
	strcpy(vet[23].nome_partita,"guitar");
	strcpy(vet[24].nome_partita,"naspo");
	strcpy(vet[25].nome_partita,"atlantis");
	strcpy(vet[26].nome_partita,"homer");
	strcpy(vet[27].nome_partita,"bart");
	strcpy(vet[28].nome_partita,"marge");
	strcpy(vet[29].nome_partita,"steve");
	
	while(i<30){
		vet[i].partita.dado_1=3;
		vet[i].partita.dado_2=4;
		vet[i].partita.pips_1=111;
		vet[i].partita.pips_2=222;
		vet[i].partita.posta=33;
		vet[i].partita.primo_giocatore=2;
		vet[i].partita.score_1=1234;
		vet[i].partita.score_2=23;
		strcpy(vet[i].partita.giocatore_1,"ciccio");
		strcpy(vet[i].partita.giocatore_2,"pipp");
		k=0;
		while(k<182){
			vet[i].partita.tabella_gioco[k]=VUOTO;
			k++;
		}
		i++;
	}
	FILE* scrittura;
	scrittura=fopen("file_salvataggio.bin","wb");
	i=0;
	while(i<30){
		fwrite(&vet[i],sizeof(partita),1,scrittura);
		i++;
	}
	fclose(scrittura);
	return;
}
e questo è ciò che utilizzo per leggere
Codice:
void caricare_partita(){
		partita partite_presenti[30];
		FILE* lista_lettura;
		lista_lettura=fopen("file_salvataggio.bin","rb");
		int i=0;
		while(i<30){	
			fread(&partite_presenti[i], sizeof(partita), 1, lista_lettura);
			i++;
		}
		
		fclose(lista_lettura);
...
...
...
Dopo la lettura quando richiamo ad esempio vet[2].nome_partita non mi da nessun problema e mi rappresenta realmente ciò che ho salvato precedentemente, mentre quando chiamo vet[xx].partita fa il casino.
come mai?? mi sapreste aiutare????
__________________
NOSTRAVIS PRO CLASSEM - GrupAer -

Ultima modifica di mirkus90 : 04-02-2014 alle 19:27.
mirkus90 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2014, 19:52   #2
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Alla fine non ho capito la domanda ... che vuoi dire con

"quando chiamo vet[xx].partita fa il casino."

?
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2014, 20:03   #3
mirkus90
Member
 
L'Avatar di mirkus90
 
Iscritto dal: Oct 2007
Città: Monopoli(BA)
Messaggi: 218
Significa che quando vado a stampare ad esempio la matrice linearizzata attraverso vet[1].partita.tabella_gioco stampa anche altri caratteri certamente non presenti quando l'ho creato. Anche gli altri campi dell'elemento partita presenta molte variazioni sospette


Inviato dal mio iPad utilizzando Tapatalk
__________________
NOSTRAVIS PRO CLASSEM - GrupAer -
mirkus90 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2014, 20:32   #4
lorenzo001
Senior Member
 
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
Non riesco a replicare il problema ... dopo la lettura eseguo

for(int k=0; k<182; k++)
printf("%d ", partite_presenti[1].partita.tabella_gioco[k]);

e non vedo problemi.
lorenzo001 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2014, 22:01   #5
bancodeipugni
Senior Member
 
L'Avatar di bancodeipugni
 
Iscritto dal: Nov 2013
Città: Nel cuore dell'8 Mile di Detroit
Messaggi: 3984
mamma santa

inizializza la struttura come si deve (se scrivi cosi' prende un colpo a chiunque)

Codice:
vet[]={bla,bbla,balbla,.....,ebla};
poi abituati a controllare sempre l'apertura del file (controlla se il tipo FILE assegnato non va a NULL) altrimenti se vai a scrivere in un percorso dove non hai i permessi non scrivi niente
bancodeipugni è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
La NASA ha lanciato il nuovo Nancy Grace...
22 offerte Amazon da non perdere, dalla ...
Bose QuietComfort Earbuds a 129,95€: ANC...
L'unico con tante scorte, non fatevi sca...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:28.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v