deviato
01-04-2008, 11:50
dunque.. ho un problema: la funzione qua elencata dovrebbe scrivere dei valori in un file e poi scriverli a video sotto forma di elenco. per quanto riguarda la scrittura penso che funzioni bene visto che aprendo il file con un editor di testi compaiono i valori che ho inserito.. il mio problema è la lettura in quanto legge solo il primo elemento. qualcuno può aiutarmi? magari anche modificando direttamente il mio listato.. ho provato ad usare fscanf ed fprintf anzichè fwrite e fread ed effettivamente li leggeva tutti l'unico problema è che quando andava a scriverli a schermo mi comparivano tutti nel medesimo punto sovrascrivendo quello che era già scritto..
ecco il listato:
[HTML]
FILE *pass;
void database()
{ char selezione,ambulanza[20];
do
{
system("cls");
pass=fopen("ambulanze.dat","r");
if (pass==NULL) printf("Impossibile aprire il file\n\n");
else
{ do
{
fread(ambulanza,20,1,pass);
printf("%s\n",ambulanza);
}while(!feof(pass));
}
fclose(pass);
printf("\nAggiungere nuove ambulanze? S/N");
scanf("%c",&selezione);
if (selezione=='s')
{
printf("Inserisci l'associazione di appartenenza: ");
scanf("%s",ambulanza);
printf("Confermi: %s? S/N",&ambulanza);
scanf("%s",&selezione);
if (selezione == 's')
{
pass=fopen("ambulanze.dat","a");
if (pass==NULL) printf("impossibile aprire il file o file non presente\n\n");
else
{ fwrite(ambulanza,20,1,pass);
fclose(pass);
}
}
}
}while (selezione != 'n');
system("pause");
menu();
}[\HTML]
ecco il listato:
[HTML]
FILE *pass;
void database()
{ char selezione,ambulanza[20];
do
{
system("cls");
pass=fopen("ambulanze.dat","r");
if (pass==NULL) printf("Impossibile aprire il file\n\n");
else
{ do
{
fread(ambulanza,20,1,pass);
printf("%s\n",ambulanza);
}while(!feof(pass));
}
fclose(pass);
printf("\nAggiungere nuove ambulanze? S/N");
scanf("%c",&selezione);
if (selezione=='s')
{
printf("Inserisci l'associazione di appartenenza: ");
scanf("%s",ambulanza);
printf("Confermi: %s? S/N",&ambulanza);
scanf("%s",&selezione);
if (selezione == 's')
{
pass=fopen("ambulanze.dat","a");
if (pass==NULL) printf("impossibile aprire il file o file non presente\n\n");
else
{ fwrite(ambulanza,20,1,pass);
fclose(pass);
}
}
}
}while (selezione != 'n');
system("pause");
menu();
}[\HTML]