[C]Errore nel file e crash output

di il
1 risposte

[C]Errore nel file e crash output

Salve raga, in pratica sto lavorando con un array di struct ( per facilitarmi un po' nel progetto che sto facendo) e quando vado ad avviare il programma il primo problema e' che crea il file correttamente , ma non me lo tabula come dico io ( vorrei che mi uscissesse un cantante con le relative caratteristiche per riga ,ma e' come se non riconoscesse la \n), l altro problema e' che mi crasha durante la visualizzazione di tutta la struttura. Grazie per chi mi aiutera'

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//costanti
#define maxautori 25
#define maxvet 21


//definisco la struttura autore
typedef struct {

	int id;
	char nome[maxautori];
	char cognome[maxautori];
	char nazionalita[maxautori];
	char sesso[2];
	char musica[maxautori];

}autori;

int main ()
{

autori vettaut[maxvet]={

				{1, "bob       ", "sinclair  ","francese","m","house\0"},
				{2, "michael   ", "jackson   ","americana","m","pop\0"},
				{3, "loredana  ", "berte'    ","italiana","m","rock\0"},
				{4, "albano    ", "carrisi   ","italiana","m","leggera\0"},
				{5, "tim       ", "bergling  ","svedese","m","house\0"},
				{6, "tiziano   ", "ferro     ","italiana","m","pop\0"},
				{7, "fabrizio  ", "tarducci  ","italiana","m","rap\0"},
				{8, "david     ", "guetta    ","francese","m","elettronica\0"},
				{9, "sfera     ", "ebbasta   ","italiana","m","trap\0"},
				{10, "gue'     ", "pequeno   ","italiana","m","rap\0"},
				{11, "vittorio ", "dimango   ","italiana","m","house\0"},
				{12, "eros     ","ramazzotti ","italiana","m","pop\0"},
				{13, "antonello", "venditti  ","italiana","m","leggera\0"},
				{14, "fabrizio ", "deandre'  ","italiana","m","leggera\0"},
				{15, "capo     ", "plaza",   "italiana","m","trap\0"},
				{16, "dark     ", "pologang  ","italiana","m","trap\0"},
				{17, "sonny    ", "skrillex  ","americano","m","elettronica\0"},
				{18, "boys     ", "noize     ","tedesco","m","elettronica\0"},
				{19, "fabio    ", "marracash ","italiana","m","rap\0"},
				{20, "roger    ", "waters    ","inglese","m","rock\0"},
				{21, "jimi     ", "hendrix   ","inglese","m","rock\0"}
};
int i;

	FILE *fp;

	fp=fopen("autori.dat","wb");
	if(fp==NULL)
	{
        printf("errore\n");
	}
	else
	for(i=0;i<maxvet;i++)
	{
		fprintf(fp,"\n\n %d \t %s \t %s \t %s \t %s \t %s\n\n",vettaut[i].id,vettaut[i].nome,vettaut[i].cognome,vettaut[i].nazionalita,vettaut[i].sesso,vettaut[i].musica);


	}
	fclose(fp);


if((fp=fopen("autori.dat","rb"))==NULL) {
        printf("errore\n");
}
else
	for(i=0;i<maxvet;i++)
	{
		fscanf(fp,"%d %s %s %s %s %s",vettaut[i].id,vettaut[i].nome,vettaut[i].cognome,vettaut[i].nazionalita,vettaut[i].sesso,vettaut[i].musica);
		printf("%d %s %s %s %s %s \n",vettaut[i].id,vettaut[i].nome,vettaut[i].cognome,vettaut[i].nazionalita,vettaut[i].sesso,vettaut[i].musica);
		printf("*********************************************************************************************\n");
	}
	fclose(fp);

}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte