Problème avec un tableau de charactère

Résolu
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010 - 2 nov. 2008 à 17:19
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010 - 4 nov. 2008 à 04:12
Bonjour, je suis en train de faire un programme client/server qui envoie et reçoit des sockets, j'envoie des tableaux de caractère d'un client à un server.  Cependant, quand je demande une entrée clavier il remplis toujours le reste de mon tableau de caractère de caractères vides...est-ce que quelqu'un sait comment enlever ces caractères ???  J'ai essayé quelques solutions mais quand j'affiche ma commande a l'écran il m'affiche toujours "mon texte" + des caractères vides jusqu'à 256...Voici mon code :

char commande [256];
puts("Entrez une commande : ");
        gets(commande);       
        printf("%s", commande);

SendCommande(commande) //Fonction socket qui envoie la commande au server

3 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
2 nov. 2008 à 19:56
Hello,
Est-ce que tu as pensé à terminer ton tableau avec le caractère nul '\0'?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010
3 nov. 2008 à 00:23
Oui, j'ai essayé de rajouter ce code mais ça ne fonctionne toujours pas.

while(commande[i] != 0)
            i++;
        commande[i] = '\0';
        printf("%s", commande);

ça m'affiche toujours plein de caractères après ma chaîne...
0
cs_bny Messages postés 24 Date d'inscription lundi 6 mars 2006 Statut Membre Dernière intervention 31 mai 2010
4 nov. 2008 à 04:12
Bon ok...mon erreur était vrm pas super, en fait j'affichais un tableau de caractere + loin dans mon programme et c'est celui là qui gachait mon affichage....ta solution était bonne mais j'en ai tout de même trouvé une meilleure :

memset(commande,0,sizeof(commande));

avant de faire mon gets...comme ça je suis sur que ma chaîne est tjrs correct.  Merci néanmoins pour la réponse ;) ++
0
Rejoignez-nous