Ciao Oregon, proverò a spiegarmi. Quello che segue è il programma che con l'istruzione fwrite(&DataInserimento, sizeof(DataInserimento), 1, fp); è perfettamente funzionante. Vorrei però sostituore, se possibile, la fwrite con una fprintf.
#include <stdio.h>
#include <string.h>
typedef struct
{
int giorno;
int mese;
int anno;
} Data;
Data DataInserimento;
int n;
void inserisciarticolo(void);
void letturaarticolo(void);
int main ( )
{
inserisciarticolo();
letturaarticolo();
return 0;
//per vedere il contenuto del file creato, aprirlo con Blocco Note
}
void inserisciarticolo()
{//inizio funzione
FILE *fp;
fp=fopen("testmacchinedata.txt", "w");
printf("Inserimento articolo\n\n");
if (fp==NULL) printf("Impossibile scrivere su file");
else
{//inizio else legato alla corretta apertura file
printf("Inserisci anno ");
scanf("%d", &DataInserimento.anno);
printf("\n\nAnno %d", DataInserimento.anno);
printf("Inserisci mese ");
scanf("%d", &DataInserimento.mese);
printf("\n\nMese %d", DataInserimento.mese);
printf("Inserisci giorno ");
scanf("%d", &DataInserimento.giorno);
printf("\n\nGiorno %d", DataInserimento.giorno);
fwrite(&DataInserimento, sizeof(DataInserimento), 1, fp);
//fprintf(fp, "%s", DataInserimento);
//fprintf(fp, "%02d/%02d/%02d\n", DataInserimento.anno, DataInserimento.mese, DataInserimento.giorno);
fclose(fp);
}//fine else legato alla corretta apertura file
system("PAUSE");
}//fine funzione
void letturaarticolo()
{//inizio funzione
FILE *fp;
fp=fopen("testmacchinedata.txt", "r");
if (fp==NULL) printf("Impossibile leggere da file");
else
{//inizio else legato alla corretta apertura file
//while(!feof(fp)){//inizio while
for(;;){//inizio for
n=fread(&DataInserimento, sizeof(DataInserimento), 1, fp);
if (n==0) break;
printf("Anno %d\n", DataInserimento.anno);
printf("Mese %d\n", DataInserimento.mese);
printf("Giorno %d\n", DataInserimento.giorno);
printf("-----------\n");
}//fine for
fclose(fp);
}//fine else legato alla corretta apertura file
}//fine funzione