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'
codice:
 
#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);


}