Ho modificato il codice e finalmente parte. Però c'è ancora un problema.
Quando compilo si apre il programma, premo 1 e mi dice "Inserisci nome:" dopodiché si apre la scermata di Windows di errore che dice che si è verificato un errore e l'applicazione verrà chiusa. In pratica dopo che inserisco il nome non mi chiede il cognome ed il resto.codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define FILE_PRED "registro_cont.txt" struct studente { //Stampa i dati dell'autore char nome[15]; char cognome[15]; } io={"Pinco","Pallino"}; struct elenco { char nome[25]; char cognome[25]; char codice_fiscale[16]; char indirizzo[30]; }; int inserisci (struct elenco registro_cont[100], int n); int salva (struct elenco registro_cont[100], int n); int main(int argc, char *argv[]) { printf(" Autore del programma:\n"); printf("------------------------------\n"); printf(" Nome: %s\n Cognome: %s\n",io.nome,io.cognome); printf("------------------------------\n\n"); //INIZIO DEL PROGRAMMA VERO E PROPRIO struct elenco registro_cont[100]; int s, n=0; do { printf("Scegli dall'elenco l'opzione che desideri fare.\n"); printf(" 1: Aggiungere nuovo individuo\n"); printf(" 2: \n"); printf(" 3: \n"); printf(" 0: Uscita\n"); scanf("%d", &s); switch(s){ case 1:{ n=inserisci (FILE_PRED,n); break;} case 2:{ break;} case 3:{ break;} case 0:{exit(0); break;} } } while(s!=0); system("pause"); return 0; } int inserisci (struct elenco registro_cont[100],int n) { //Quando compilo mi da errore in questa riga if (n==100) printf("Non puoi aggiungere altri individui\n"); else { printf("Inserisci nome: "); scanf("%s\n",registro_cont[n].nome); printf("Inserisci cognome: "); scanf("%s\n",registro_cont[n].cognome); printf("Inserisci codice fiscale; "); scanf("%s\n",registro_cont[n].codice_fiscale); printf("Inserisci indirizzo: "); scanf("%s\n",registro_cont[n].indirizzo); FILE *fp; fp=fopen(FILE_PRED,"a"); if(fp==NULL) printf("Impossibile salvare!\n"); else { fprintf(fp,"%s %s %s %s\n",registro_cont[n].nome); printf("---Salvato---"); fclose(fp); } } }

Rispondi quotando