Problème avec un tableau de charactère [Résolu]

Signaler
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010
-
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010
-
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

Messages postés
14940
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 janvier 2021
93
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...
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010

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...
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010

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 ;) ++