Ecco ho utilizzato un file ad accesso sequenziale..ma scrivo e poi leggo ma non mi visualizza sull'output video.
cosa sbaglio ?
codice:
#include <stdio.h>
#include <string.h>
#define n 10
struct matrimonio {
char Cognome_Sposo[15];
char Cognome_Sposa[15];
int Data;
int Invitati;
}matri[n];
int main()
{
char sposo[15];
char sposa[15];
int data;
int invitati;
int i = 0;
FILE *cfPtr; /* puntatore al file eventi.dat */
/* fopen apre il file in lettura/scrittura; se non riesce ad aprirlo provoca l'uscita dal programma */
if (( cfPtr = fopen("eventi.dat", "w")) == NULL ) {
printf("Il file non può essere aperto.\n");
} else {
printf("Inserisci il cognome dello sposo, il cognome della sposa, la data e il numero di invitati : \n");
printf("Inserisci EOF per terminare l'inserimento \n");
scanf("%s%s%d%d\n", sposo, sposa, &data, &invitati );
/* scrive i dati nel file con fprintf */
while (!feof(stdin)) { /* stdin punta al file e la funzione feof controlla l'impostazione di EOF */
fprintf(cfPtr, "%s %s %d %d\n", sposo, sposa, data, invitati);
scanf("%s%s%d%d\n", sposo, sposa, &data, &invitati);
} /* end while */
fclose(cfPtr);
} /* end else */
/* fopen apre il file in lettura; se non riesce ad aprire il file provoca l'uscita dal programma */
if (( cfPtr = fopen("eventi.dat", "r")) == NULL ) {
printf("Il file non può essere aperto \n");
} else {
printf("%15s%15s%6s%18s", "COGNOME SPOSO", "COGNOME SPOSA", "DATA", "NUMERO INVITATI\n");
fscanf(cfPtr, "%s%s%d%d", sposo, sposa, &data, &invitati);
strcpy(matri[i].Cognome_Sposo, sposo);
strcpy(matri[i].Cognome_Sposa, sposa);
matri[i].Data = data;
matri[i].Invitati = invitati;
i++;
while (!feof(stdin)) {
printf("%15s%15s%6d%18d", sposo, sposa, data, invitati);
fscanf(cfPtr, "%s%s%d%d", sposo, sposa, &data, &invitati);
strcpy(matri[i].Cognome_Sposo, sposo);
strcpy(matri[i].Cognome_Sposa, sposa);
matri[i].Data = data;
matri[i].Invitati = invitati;
i++;
} /* end while */
fclose(cfPtr);
} /* end else */
return 0;
}