Probléme d'écriture dans un fichier

_testtesttest_ Messages postés 2 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 25 avril 2004 - 25 avril 2004 à 00:29
_testtesttest_ Messages postés 2 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 25 avril 2004 - 25 avril 2004 à 11:29
Bonjour,je débute en c/cpp et je suis confronté à un probléme.
Je suis en train de codé un programme qui récupére des données sur un socket donc grace a une ligne de la forme :
recv(sock,buffer, sizeof(buffer),0);
Je doit ensuite écrire le contenu de buffer dans un fichier,le probléme est l'ajout de caractére " ÌÌÌÌÌÌÌ" (sans doute parsque le buffer n'est pas de la taille exacte des donnée recu).Donc ma question est comment éviter l'insertion de ces caractéres.
Merci !

5 réponses

petitchech Messages postés 114 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juin 2004
25 avril 2004 à 00:59
salut,

je pense ke le recv ne reçoi rien car souvent les variables char contienne c'est caractere.
0
petitchech Messages postés 114 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juin 2004
25 avril 2004 à 01:02
ah j'ai peu etre mal compri il ajoute c caratere a la fin de se que tu a reçu ?
soi tu fai un memset(buffer,0,buffer); de la variable avant soi tu fai buffer[recv(sock,buffer, sizeof(buffer),0)] = '\0';
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
25 avril 2004 à 09:54
Si ca t'ajoutes des " ÌÌÌÌÌÌÌ" c'est parceque ta variable char n'a pas été initialisé !!!
Pour y remedier, declare la soit en static, soit tu fais par exemple char buffer[500], soit char *buffer = new char[sizeof(char)] qui allouera la taille d'un char ....

Voila ... Si t'as toujours des problemes mets nous le code pour qu'on puisse mieux t'aider ...

Samir
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
25 avril 2004 à 11:17
Je pense que ton probleme est que tu ecris l integralite de ton buffer dans ton fichier. Il faut pour eviter ce probleme ecrire uniquement le nombre d octets recus, qui est la valeur renvoyee par recv().
en fait tu fais :

int nb;
/* ... */
nb = recv(sock,buffer, sizeof(buffer),0);
fwrite(buffer,1,nb,fd);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
_testtesttest_ Messages postés 2 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 25 avril 2004
25 avril 2004 à 11:29
Je l'ai déclaré en static et tout fonctionne correctement maintenant ! :)
Merci a tous de vote aide !
0
Rejoignez-nous