Ho modificato il codice e finalmente parte. Però c'è ancora un problema.
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);
}
}
}
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.