io ho fatto così..ma cmq ho il dubbio che non rispetti le richieste del problema..secondo voi?
codice:
#include <stdio.h>
#include <stdlib.h>
#define maxchar 20
#define N 2
int main ()
{
struct assegnazione{
int Numero_appartamento;
char Nome_Proprietario[maxchar];
char Cognome_Proprietario[maxchar];
int Settimana_acquistata;
}ass[N];
int i,j;
int num, set;
char nome[maxchar];
char cognome[maxchar];
int appcerc, settcerc;
/*Crea file ad accesso casuale*/
FILE * cfPtr;
if ((cfPtr = fopen ( "proprietà.dat" , "w" )) == NULL){
printf("Il file non può essere aperto");
}
else{
printf ("Inserisci numero app, cognome, nome, settimana : \n");
printf ("Inserisci EOF per terminare l'inserimento \n");
scanf ("%d%s%s%d", &num, nome, cognome, &set);
while (!feof(stdin)){
fprintf (cfPtr, "%d %s %s %d\n", num, nome, cognome, set);
scanf ("%d%s%s%d", &num, nome, cognome, &set);
}
fclose (cfPtr);
}
if ((cfPtr = fopen ("proprietà.dat", "r")) == NULL){
printf ("Il file non può essere aperto");
}
else{
i = 0;
fscanf (cfPtr, "%d%s%s%d", &num, nome, cognome, &set);
ass[i].Numero_appartamento = num;
strcpy(ass[i].Nome_Proprietario,nome);
strcpy(ass[i].Cognome_Proprietario, cognome);
ass[i].Settimana_acquistata = set;
i++;
while (!feof(cfPtr)){
const aResult = fscanf (cfPtr,"%d%s%s%d", &num, nome, cognome, &set);
if (aResult != -1){
ass[i].Numero_appartamento = num;
strcpy(ass[i].Nome_Proprietario,nome);
strcpy(ass[i].Cognome_Proprietario, cognome);
ass[i].Settimana_acquistata = set;
i++;
}
}
fclose(cfPtr);
}
printf("Inserisci il numero dell'appartamento e la settimana acquistata\n");
scanf ("%d%d", &appcerc, &settcerc);
for (j = 0; j < i; j++){
if (ass[j].Numero_appartamento == appcerc){
if(ass[j].Settimana_acquistata == settcerc){
printf ("\nNome proprietario : %s", ass[j].Nome_Proprietario);
printf ("\nCognome proprietario : %s", ass[j].Cognome_Proprietario);
}
}
}
system("PAUSE");
return 0;
}