ho provato a fare un programmino che utilizzi queste funzioni...e che deve ricercare un record nel file e stamparlo se viene trovato...ma non funziona...
...provo a postare il codice...se potete correggere quello che ho sbalgiato...
codice:
#include <stdio.h>
struct data {
int conto;
char nome[10];
char cogn[15];
int saldo;
};
int main ()
{
struct data str = {0,"","",0};
char pstr[10];
int ncont,i;
FILE *aptr;
aptr = fopen("File_casuale.txt","rb+");
printf ("Inserire numeri di conto: ");
scanf ("%d", &str.conto);
rewind(aptr);
while ( str.conto != 0 ) {
printf ("Inserire nome e cognome: ");
scanf ("%s%s", str.nome, str.cogn);
printf ("Inserire saldo utente: ");
scanf ("%d", &str.saldo);
fwrite (&str,sizeof(struct data),1,aptr);
printf ("\nInserire un numero conto: ");
scanf ("%d", &str.conto);
}
//ricerca per numero di conto
printf ("Inserire numero conto per la ricerca: ");
scanf ("%d", &ncont);
fseek(aptr,(ncont-1)*sizeof(struct data),SEEK_SET);
fread(&str,sizeof(struct data),1,aptr);
if ( str.conto == ncont ) {
printf ("Conto trovato\n");
printf ("%d%s%s%d\n", str.conto, str.nome, str.cogn, str.saldo);
}
else {
printf ("Non e' stato trovato il conto corrispondente\n");
}
fclose(aptr);
system ("pause");
}