Aiuto esFile in Visual C++6.0

di il
2 risposte

Aiuto esFile in Visual C++6.0

Ciao a tutti... ho provato ad iniziare un esercizio.... pero' quando mi chiede nome file e scrivo il nome mi da errore perchè file non esiste ma io il file l'ho creato... forse l'ho creato male.. qualke d'uno puo' spiegarmi come faccio a crearlo?... vi ringrazio!!! Ciao ciao

Cmq l'es è questo....

Su un file di testo sono memorizzati il nome di un comune, il numero totale degli occupati e il numero dei lavoratori del settore agricolo.Gestire attraverso un menu' le seguenti possibilità:Aggiunta di un comune,Modifica dei dati di un comune, Ordinamento dell'elenco in ordine alfabetico, Stampa del nome del comune con il maggior numero degli abitanti occupati.

Nota:Caricare il contenuto del file in tabella, salvare il tutto alla fine.



#include<stdio.h>
#include<stdlib.h>

#define NOMAX 7+1 //NUMERO MAX CARATTERE NOME COMUNE
#define NMAX 10 //NUMERO MASSIMO ELEMENTI IN TABELLA

typedef struct
{
char Nome[NOMAX]; //nome comune
int No; //numero occupanti
int Na; //numero lavoratori settore agricolo

}TCOMUNE;

/* Prototipi funzioni */

void Leggi(TCOMUNE Com[], int *pN);
void ScriviMenu();
int LeggiN();
void Aggiungi(TCOMUNE Com[], int *pN);
void Modifica(TCOMUNE Com[], int N);
void Cancella(TCOMUNE Com[], int *pN);
void Ordina(TCOMUNE Com[], int N);
int CercaMax(TCOMUNE Com[],int N,int *pmax);



void main()
{
TCOMUNE Com[NOMAX];
int N=0;
int scelta;
int max;

Leggi(Com,&N);

do
{
ScriviMenu();
scelta=LeggiN("scelta:,1,NMAX");
switch(scelta)
{
case'0':printf("Elaborazione Terminata\n");
break;
case'1':Aggiungi(Com,&N);
break;
case'2':Modifica(Com,N);
break;
case'3':Cancella(Com,&N);
break;
case'4':Ordina(Com,N);
break;
case'5':max=CercaMax(Com,N,&max);
break;
default:printf("Scelta errata\n");
}
}while(scelta!=0);
}

void Leggi(TCOMUNE Com[], int *pN)
{
char nfilin[NOMAX];
FILE *filin;
printf("Nome file:");
fflush(stdin);
gets(nfilin);
if((filin=fopen("nfilin","r"))==NULL)
printf("Errore\n");
{
exit(55);
}
while(!feof(filin)&&*pN<NMAX)
{
fflush(filin);
fscanf(filin,"%s,%d,%d",Com[*pN].No,Com[*pN].Na);
(*pN)++;//incremento
}
fclose(filin);

}
int LeggiN()
{
int N;
do
{
printf("Scelta:");
scanf("%d",&N);

}while(N<0||N>5);

return N;
}

void ScriviMenu()
{
printf("1 - Aggiungere un comune:");
printf("2 - Modificare dati di un comune:");
printf("3 - Cancellare un comune:");
printf("4 - Ordinare l'elenco in ordine alfabetico:");
printf("5 - Stampare il nome del comune con maggior numero degli abitanti occupati:");
printf("0 - Esci\n\n");
}
void Aggiungi(TCOMUNE Com[], int *pN)
{
if(*pN<NMAX)
{
printf("Dammi il nome:");
fflush(stdin);
gets(Com[*pN].Nome);
printf("Dammi il numero degli occupati:");
scanf("%d",&*pN);
printf("Dammi il numero degli occupati nel settore agricolo");
scanf("%d",&*pN);
}
else
printf("Tabella piena");
}
void Modifica(TCOMUNE Com[], int N)
{}
void Cancella(TCOMUNE Com[], int *pN)
{}
void Ordina(TCOMUNE Com[], int N)
{}
int CercaMax(TCOMUNE Com[],int N,int *pmax)
{
return 0;
}

GRAZIE!!!
Alessia

2 Risposte

  • Re: Aiuto esFile in Visual C++6.0

    Ciao,
    Mi pare che tu abbia fatto un errore di fondo... il tuo codice cerca di aprire il file di nome FILIN da disco...
    forse intendevi fopen(filin,"r") //con filin senza virgolette visto che è uan stringa...

    Ciaociao

    Venite a visitarci qui: http://www.bottomap.co
  • Re: Aiuto esFile in Visual C++6.0

    Grazie mille x l'aiuto e per avermi risposto!!!!




    Ciao ciao
    Alessia
Devi accedere o registrarti per scrivere nel forum
2 risposte