bonjour, j'ai un petit souci avec une question que j'ai eu à l'examen (que j'ai raté) et dont je ne trouve pas la solution.
Question 1 La fonction compter_enregistrements est la première appelée par main. Elle doit recevoir en paramètre le nom d’un fichier (chaîne) et la taille commune des enregistrements de ce fichier (en octets). Elle retourne vers l’appelant le nombre d’enregistrements contenus dans ce fichier (0 si le fichier est vide ou non trouvé).
Ecrire le code de cette fonction.
Question 2 Ecrire une variante de compter_enregistrements. Elle réalise le même traitement que celle de la question 1, à la différence qu’elle retourne 0 si le fichier n’est pas trouvé et 1 s’il est trouvé. Uniquement si le fichier est trouvé, elle propage vers l’appelant le nombre d’enregistrements contenus dans ce fichier, en utilisant un moyen alternatif à la valeur de retour.
Ecrire le code de cette variante. N’indiquez que les modifications apportées à la fonction de la question 1..
voici le prototype de cette fonction:
int compter_enregistrements (char*,int);
voici l'appel à cette fonction dans main
compter_enregistrements(fichier_voiture, sizeof(vehicule));
question 1
je ne vois pas comment répondre à la question 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int compter_enregistrements(const char* fichier_courant,int taille) { FILE* f_voiture; int ret_val; f_voiture = fopen(fichier_courant, "rb"); if(f_voiture == NULL) ret_val = 0; else { fseek(f_voiture, 0, SEEK_END); ret_val = ftell(f_voiture)/taille; fclose(f_voiture); } return ret_val;
en utilisant un pointeur? mais sur quoi?
je suis complètement perdu!!!
merci d'avance.
Partager