ciao a tutti avrei bisogno di un grandissimo aiuto spero sia la sezione giusta..
devo realizzare un programma che prenda in input vari dati tramite delle strutture dopo di che salvarle in un file.. il programma l'ho fatto e logicamente sembra corretto solo che ogni volta mi da la prima riga sballata(non di termini immessi da me) e dopo la seconda iterazione crashia e non riesco a capire il perchè.. qualcuno puo gentilmente darmi una mano??? il codice è questo:
codice:
#include<stdio.h>
#include<stdlib.h>
struct Insegnamenti {
int CD_Ins;
char Nome[40];
int Anno;
int Sem;
int CFU;};
int main()
{
FILE *Insegnamento;
int i;
i=1;
struct Insegnamenti Pos[i];
if ((Insegnamento = fopen("Insegnamenti.bak", "wt")) == NULL)
printf("\nNon posso aprire il file di input.\n");
else
while(Pos[i].CD_Ins!=-1){
printf("dammi il codice dell'insegnamento\n");
scanf("%d", &Pos[i].CD_Ins);
if(Pos[i].CD_Ins!=-1){
printf("Immeti il nome dell'insegnamento\n");
scanf("%s",&Pos[i].Nome);
do{
printf("Inserisci l'anno del corso\n");
scanf("%d",&Pos[i].Anno);
if(Pos[i].Anno>3)
printf("Gli anni sono 3 non %d\n\n",Pos[i].Anno);}
while(Pos[i].Anno>3);
do{
printf("A che semestre appartiene\n");
scanf("%d",&Pos[i].Sem);
if(Pos[i].Sem>2)
printf("I semestri sono 2\n\n");}
while(Pos[i].Sem>2);
do{
printf("inserisce i CFU\n");
scanf("%d", &Pos[i].CFU);
if(Pos[i].CFU>18)
printf("Non ti sembrano un po troppi??\n\n");}
while(Pos[i].CFU>18);
printf("%5d%10s%5d%5d%5d\n",Pos[i].CD_Ins,Pos[i].Nome,Pos[i].Anno,Pos[i].Sem,Pos[i].CFU);
fprintf(Insegnamento,"%5d%10s%5d%5d%5d\n",Pos[i].CD_Ins,Pos[i].Nome,Pos[i].Anno,Pos[i].Sem,Pos[i].CFU);
}}
fclose(Insegnamento);
system("PAUSE");
}
il compilatore usato e dev-c spero che qualcuno mi possa aiutare dato che sto uscendo matto