Problema con la scrittura in file binario

di il
6 risposte

Problema con la scrittura in file binario

Mi sto approcciando ora ai file e ho fatto questo esercizio:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 50
#define num_s 2

typedef struct{
	char nome[max];
	char cognome[max];
	int voto;
}struttura;

int main(){
	struttura studente;
	int i;
	FILE *f;
	
	if((f=fopen("archivio.txt", "wb"))==NULL){
		printf("errore nell'apertura del file!");
		exit(0);
	}
	
	for(i=0;i<num_s; i++){
		printf("Studente n %d:\n", i+1);
		printf("\nNome: ");
		scanf("%s", &studente.nome);
		printf("\nCognome: ");
		scanf("%s", &studente.cognome);
		printf("\nVoto: ");
		scanf("%d", &studente.voto);		
		fwrite(&studente, sizeof(struttura), 1, f);
	}	
	
	fclose(f);
}
dove devo semplicemente inserire i dati dello studente nel file archivio.txt . Non mi da errori di compilazioni ma mi stampa questo:

mario                  %@      !@     <       `rossi        ÿÿÿÿÿÿÿÿ<              )%@         
   giovanni               %@      !@     <       `verdi        ÿÿÿÿÿÿÿÿ<              )%@           
Il voto non viene stampato, mentre il nome e cognome si ma in mezzo a tanti simboli che non dovrebbero esserci

6 Risposte

  • Re: Problema con la scrittura in file binario

    Stai visualizzando il contenuto del file binario e quindi è normale visualizzare i dati in quel modo. Non è un file di testo.

    Non hai un problema probabilmente non hai studiato a fondo la parte teorica riguardante i file binari.

    E poi qui il crossposting è vietato. Perché hai scritto anche in

    http://www.pierotofy.it/pages/extras/forum/2/1067835-problema_con_la_scrittura_in_file_binario/

    ??
  • Re: Problema con la scrittura in file binario

    oregon ha scritto:


    Stai visualizzando il contenuto del file binario e quindi è normale visualizzare i dati in quel modo. Non è un file di testo.

    Non hai un problema probabilmente non hai studiato a fondo la parte teorica riguardante i file binari.

    E poi qui il crossposting è vietato. Perché hai scritto anche in

    http://www.pierotofy.it/pages/extras/forum/2/1067835-problema_con_la_scrittura_in_file_binario/

    ??
    scusa se ti rispondo solo ora. Per la cosa del crossposting sarò onesto, non sapevo manco che fosse.. onestamente avevo bisogno di aiuto urgente perché non riuscivo a capire il problema e quindi ho chiesto pure li, non sapevo fosse vietato, scusate.
    Per quanto riguarda il programma: non essendo un file di testo non è corretto il codice scritto scusa? non riesco a capire scusa ahah, si probabilmente non conosco del tutto bene la teoria ahah
  • Re: Problema con la scrittura in file binario

    Tu stai esaminando un file scritto in binario penso con un editor di testo (notepad?).

    Ed è ovvio, ti dico, che vedi i dati in quel modo perché i dati sono scritti in binario e NON devi utilizzare un editor di testi per visualizzarli.

    In pratica è tutto corretto.
  • Re: Problema con la scrittura in file binario

    oregon ha scritto:


    Tu stai esaminando un file scritto in binario penso con un editor di testo (notepad?).

    Ed è ovvio, ti dico, che vedi i dati in quel modo perché i dati sono scritti in binario e NON devi utilizzare un editor di testi per visualizzarli.

    In pratica è tutto corretto.
    ahh quindi è l'editor di testo il problema, okok. Hai qualche editor che puoi consigliarmi per visualizzarlo correttamente?
  • Re: Problema con la scrittura in file binario

    Puoi usare un editor esadecimale ma vedrai i dati come sequenze di byte. Il modo giusto di vederli è rileggerli con la fread e visualizzarli
  • Re: Problema con la scrittura in file binario

    oregon ha scritto:


    Puoi usare un editor esadecimale ma vedrai i dati come sequenze di byte. Il modo giusto di vederli è rileggerli con la fread e visualizzarli
    ahh okok, grazie mille
Devi accedere o registrarti per scrivere nel forum
6 risposte