1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <stdio.h>
#define NB_ENTIERS 100
int main(void) {
int tab[NB_ENTIERS]; // Oui, je ne l'initialise pas car je sais ce que je fais et je sais gérer mon tableau
FILE* pFichier = fopen("c:\\repertoire\\monfichier.txt", "r");
if (pFichier == NULL) {
// Gérer le cas (probablement quitter)
}
int *entier_lu;
size_t index;
for (entier_lu=tab, index=0; index < NB_ENTIERS && fscanf(pFichier, "%d", entier_lu) == 1; entier_lu++, index++); // En plus j'évite 1) une indirection et 2) une recopie
if (index == NB_ENTIERS)
printf("%zu entiers ont été lus, le tableau est plein.", index);
else if (feof(pFichier))
printf("La fin du fichier a été atteinte après avoir lu %zu entiers.\n", index);
else
printf("La lecture du fichier a été échoué après avoir lu %zu entiers.\n", index);
fclose(pFichier);
//Traiter/afficher les "index" entiers lus
} |
Partager