Bon, c'est encore moi ...
Donc (bien que vous n'aimiez pas ça), je continue avec ma mise à jour de fichier.
J'ai une structure composée de différents champs :
1 2 3 4 5 6
|
struct resultats
{
int matric;
float qualg, quaju, quato, m1lg, m1ju, m1to, m2lg, m2ju, m2to, general;
}; |
- A un moment dans mon programme, je rentre des données dans plusieurs champs (les 4 premiers).
-> Suite à cela, je copie ma structure dans un fichier (en fait, c'est un tableau de structure, mais ça revient au meme...)
fwrite( & tabresul[i], sizeof( struct resultats ), 1, f );
- Un peu plus tard, je rentre des données dans les 3 champs suivants (donc les champs 5 à 7).
-> Je désire à nouveau copier les champs mis à jour dans mon fichier mais ATTENTION, sans effacer le contenu existant de mon fichier. Je refais un (donc, une mise à jour en quelque sorte) :
fwrite( & tabresul[i], sizeof( struct resultats ), 1, f );
Et là, c'est la cata; la dernière écriture efface le contenu du fichier. Pourant j'ai bien ouvert mon fichier en mise à jour avec
f = fopen( s_chemin, "r+b" );
Où pourrait se situer mon erreur ???
Dois-je faire une écriture champ par champ ? Ce serait un peu fastidieux !
Partager