Scrittura su file
- fprintf
- usato per scrivere in un file
- simile a printf, eccetto per il primo argomento che è un puntatore a FILE (il file in cui si vuole scrivere)
- feof(FILE pointer)
- restituisce vero se si è raggiunto l’end-of-file (non c’è nessun altro dato da processare)
- fclose(FILE pointer)
- chiude il file specificato
- viene effettuato automaticamente quando il programma termina
- è comunque buona pratica chiudere i file esplicitamente
//scrittura in un file sequenziale
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char matricola[30];
char nome[50];
double media_voti;
FILE *f;
if ((f = fopen("studenti.txt", "w")) == NULL)
{
printf("Il file non può essere aperto\\n");
exit(-1);
}
printf("Inserisci matricola, nome e media di uno studente (EOF per concludere):\\n");
scanf("%s %s %lg", matricola, nome, &media_voti);
while (!feof(stdin))
{
fprintf(f, "%s %s %lg \\n", matricola, nome, media_voti);
scanf("%s %s %lg", matricola, nome, &media_voti);
}
fclose(f);
return 0;
}
Combinazione di tasti per indicare l’end-of-file di stdin
sistema |
combinazione di tasti |
UNIX systems |
<return> <ctrl> d |
IBM PC and compatibles |
<ctrl> z |
Macintosh |
<ctrl> d |