Je solicite votre aide car je suis en BTS SN 1 option IR, que je bloque sur un probleme et que mon prof d'info sera absent pour une durée indeterminer.
J'ai un fichier binaire ecris à l'aide de fwrite contenant deux choses:
-un nombre representant le nombre de données (structure en locurence) inscrite dans le fichier,
-les différentes structures.
Et mon probleme est que quand je rajoute une structure (et donc que je doit modifier le nombre en debut de doc) je n'arrive pas à "ecraser" le nombre ecrit et le remplacer par le nouveau (en utilisant fseek ou rewind meme resultat), je me suis apercut en faisant un autre code a cotes pour essayer de comprendre que quoi qu'il arrive fwrite écrivais a la fin du document.
fwrite(&tampon, sizeof(Fiche), 1, fichier);
*(fiches+nbrStruct) = tampon;
nbrStruct++;
fseek(fichier, 0,SEEK_SET);
fwrite(&nbrStruct, sizeof(int), 1, fichier); //C'est cette ligne qui modifie le nombre
fseek(fichier, nbrStruct, SEEK_CUR);
et le code "bidon" qui m'a servie pour la remarque
Le fichier est ouvert en mode "a+", vérifie bien les modes possibles. "a" veux dire "append" donc des ajouts seulement et l'absence de "b" risque de ne fonctionner nulle part sauf sous Linux. Pour un accès écriture de données binaires, je te propose plutôt d'utiliser "r+b", pour le lire "rb" et pour une première création "wb" ou "w+b".
Merci à tous j'avais un peu oublier le post ^^" j'en suis desoler...
Quand a ce qui concerne mon probleme j'en ai trouver la solution et concernant std::ofstream y a deux raisons:
1. j'etais en C
2. mon prof m'a demander de pas aller plus vite que la musique et il est du style à enquiquiner donc plutôt que de me prendre la tete avec lui je continue fopen.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.