Fichier binaire

niketou Messages postés 295 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 6 décembre 2010 - 29 mars 2006 à 14:09
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 30 mars 2006 à 03:41
Salut a tous.
J'ai un petit probleme je voudrais recuperer une donnee dans le fichier:

void ReadMe(){
char bu[1];


ifstream g;
g.open("data.dat",ios::in, ios::binary);
if (!g) {
MessageBox(NULL,"data file not found",MB_OK,NULL);
}
g.read(bu, 1);
g.close();
}

Je n'ai aucune erreure mais bu est vide.
Si quelqu'un peu m'aider,merci a vous.

4 réponses

juanpaco Messages postés 6 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 31 mars 2006
29 mars 2006 à 21:19
Je ne peux pas réproduire l'erreur que vous avez là. Quand vous
essayez d'utiliser bu, est-ce que vous utilisez "bu[0]" ou bien juste
"bu"? Parceque bu n'est qu'un pointer, et quoique vous y metiez,
il ne va pas changer. Aussi, ça semble bizarre de mettre
directement la taille de ce que vous allez lire. Mieux vaut
mettre sizeof(char) comme g.read(bu, sizeof(char)).
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
30 mars 2006 à 03:32
Bien c'est probablement que ton bu n'a pas assé d'espace mémoire pour le caratère '\0' qui est essenciel pour terminer une chaine de caractère.

Essais but[2];

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
30 mars 2006 à 03:38
Ha tien je vien de tester ton code et ya pas de problème chez moi. Est tu sur que tu test bien bu[0] et pas bu[1]?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
30 mars 2006 à 03:41
Pour tester tu n'a qu'a faire après ton g.close, printf("%c", bu[0]); ou cout << bu[0];
Si il affiche la première lettre de ton fichier, tout est OK.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
Rejoignez-nous