Bonjour,

J'ai un exercice qui consiste à lire des données dans un fichier source et à les copier dans un fichier destination, en y incrémentant 2 à chaque note de chaque ligne. Cette note ne devant pas dépasser 20.

Fichier source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
15; Aline
12; Bernard
9; Mafalda
19; Eliot
Fichier destination :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
17; Aline
14; Bernard
11; Mafalda
20; Eliot
Débutant avec toutes les fonctions fget, fread, j'ai encore du mal à me figurer comment elle marche et comment les données sont manipulées.
la situation idéal serait quelles soient récupérés (fget?) et stockés dans un tableau de structure à deux colonnes.
De là, je n'aurais qu'à récupérer la première colonne de chaque ligne (persone[0][i]) et d'incrémenter via une boucle (for (int i = 0; i < nbrPers; i++)), en m'assurant que la note ne dépasse pas 20 (if & else)

Est-ce qu'il ne serait pas une bonne idées de diviser ma fonction Anniversaire()? J'ai l'impression que je veux faire trop de chose dedans...

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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
 
 
// ================================= STRUCTURE =================================
// tableau de structure stockant une personne et sa note
struct personne
{
	float note;
	char nom[30];
};
 
//déclaration de ce tableau sous le pointeur tab
struct personne *tab;
 
// ================================= FONCTION APPELEE =================================
// fonction copiant les données d'un fichier dans un autre en y incrémentant deux point
void Anniversaire(FILE *source; FILE *dest) {
 
	// déclaraction de la taille du tableau.
	tab = malloc(nbrPers * sizeof(struct personne));
 
	//copie des données fichier source dans le tableau tab.
 
 
	// incrémentation à la variable note.
	for (int i = 0; i < nbrPers; i++)
	{
		if (tab[i].note < 19) {
			tab[i].note + 2
		}
		else
		{
			tab[i].note + 1
		}
 
	}
 
	// copie des données du tableau tab dans le fichier dest.
 
 
}
 
 
// ================================= FONCTION MAIN =================================
int main() {
	FILE *fo, *fw;
 
	if ((fo = fopen("/note.txt", "r")) == NULL)
	{
		printf("impossible d'ouvrir en lecture le fichier note.txt !\n");
		exit(0);
	}
	if ((fw = fopen("/anniversaire.txt", "w"))) == NULL)
	{
		printf("impossible d'ouvrir en écriture le fichier anniversaire.txt !\n");
		exit(1);
	}
 
	Anniversaire(*fo, *fw);
 
	fclose(fo);
	fclose(fw);
 
	return 0;
}
Merci d'avance,
Red'