Fran6web
Messages postés18Date d'inscriptionmercredi 25 août 2004StatutMembreDernière intervention 2 mars 2008
-
28 févr. 2008 à 21:49
Fran6web
Messages postés18Date d'inscriptionmercredi 25 août 2004StatutMembreDernière intervention 2 mars 2008
-
29 févr. 2008 à 11:02
Bonjour,
Je suis en train de me faire un programme en C qui me récupère le contenu d'un page envoyé par protocole HTTP.
J'ai cependant un p'tit problème, lorsque je reçois la page il y a des caractères en plus qui se mette par ci par là.
Sous mon terminal ils apparaissent comme ceci :<table cellpadding"0" cellsp \370\337 acing"0"><tr><td valign= "middle">
J'enregistre aussi le résultat dans un fichier et voici ce que ça rend dans le fichier :
<table cellpadding="0" cellsp øß acing ="0"><tr><td valign="middle">
Bien sur avec mon navigateur si j'affiche la source j'ai ça :
<table cellpadding ="0" cellspacing="0"><tr><td valign="middle">
Voici la partie de mon script qui s'occupe de recevoir les données :
FILE* fichier = NULL;
fichier = fopen("test.txt", "w+");
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 29 févr. 2008 à 01:58
Salut,
buffer ne contient pas une chaine mais un certain nombre d'octet, il
faut sauver la valeur de retour du recv pour savoir combien exactement.
tu ne peux donc pas faire de fprintf(fichier, "%s", buffer); ou tout
autre manipulation du même genre qui supposerait que buffer contienne
une chaine terminée par '\0'.
La boucle pour remettre tout buffer a 0 ne sert a rien (en plus d'etre fausse).
Un truc dans ce gout la ca devrait fonctionner un peu mieux: