In C, i file sono accessibili tramite un puntatore ad una struttura dati FILE
#include <stdio.h>
FILE *fp;
<stdio.h>FILE *fopen(const char *filename, const char *mode);
| Modalità | Descrizione |
|---|---|
"r" |
Solo lettura (il file deve esistere) |
"w" |
Solo scrittura (crea nuovo o tronca) |
"a" |
Append (aggiunge alla fine del file) |
"r+" |
Lettura e scrittura (il file deve esistere) |
"w+" |
Lettura e scrittura (crea nuovo o tronca) |
#include <stdio.h>
int main() {
FILE *file;
// Apre il file in lettura
file = fopen("data.txt", "r");
// Controlla se il file è stato aperto con successo
if (file == NULL) {
printf("Errore: Impossibile aprire il file\n");
return 1;
}
printf("File aperto con successo!\n");
// Non dimenticare di chiudere il file
fclose(file);
return 0;
}
Controlla sempre se fopen() ha avuto successo
FILE *file = fopen("input.txt", "r");
if (file == NULL) {
perror("Errore nell'apertura del file");
return 1;
}
perror() stampa un messaggio di errore descrittivo
fgets() - Legge una riga alla voltafscanf() - Legge input formattatofread() - Legge dati binarichar *fgets(char *str, int n, FILE *stream);
\n)#include <stdio.h>
#define MAX_LINE 256
int main() {
FILE *file;
char line[MAX_LINE];
file = fopen("data.txt", "r");
if (file == NULL) {
perror("Errore nell'apertura del file");
return 1;
}
// Legge e stampa ogni riga
while (fgets(line, MAX_LINE, file) != NULL) {
printf("%s", line);
}
fclose(file);
return 0;
}
#include <stdio.h>
#define MAX_LINE 1024
int main() {
FILE *file;
char line[MAX_LINE];
int count = 0;
file = fopen("document.txt", "r");
if (file == NULL) {
perror("Errore nell'apertura del file");
return 1;
}
while (fgets(line, MAX_LINE, file) != NULL) {
count++;
}
printf("Totale righe: %d\n", count);
fclose(file);
return 0;
}
int fclose(FILE *stream);
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "r");
if (file == NULL) {
perror("Errore nell'apertura del file");
return 1;
}
// ... esegui operazioni sul file ...
// Chiudi il file
if (fclose(file) != 0) {
perror("Errore nella chiusura del file");
return 1;
}
printf("File chiuso con successo\n");
return 0;
}
fopen() ha successofclose()perror() per i messaggi di erroreScrivi un programma che:
| Funzione | Scopo |
|---|---|
fopen() |
Apre un file, ritorna un puntatore FILE |
fgets() |
Legge una riga dal file |
fgetc() |
Legge un carattere dal file |
fclose() |
Chiude il file e libera le risorse |
perror() |
Stampa un messaggio di errore |
Domande?
Usa i tasti freccia o spazio per navigare
Premi ESC per la panoramica