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);
}