Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1483 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  (Débutant) taille tableau caractère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(Débutant) taille tableau caractère

n°616570
olympius
Posté le 20-01-2004 à 13:54:40  profilanswer
 

Je suis débutant en c++.
 

Code :
  1. /////////////////////////////////////////
  2. char buf[1024];
  3. int size_recu=-1;
  4. while(size_recu==-1)
  5.      size_recu = recv( to_server_socket, buf, 1024, 0);
  6.  
  7. cout << "Receive > " << buf << endl;
  8. ///////////////////////////////////////////


Ce bout de code marche bien. Le truc c'est que quand j'affiche buf, g à l'ecran tous les 1024 caractères. Comment crée un tableau de la taille size_recu à la place de 1024?

mood
Publicité
Posté le 20-01-2004 à 13:54:40  profilanswer
 

n°616573
chrisbk
-
Posté le 20-01-2004 à 13:56:15  profilanswer
 

c'est normal que t'ecrases tout le tps tes données ?

n°616577
olympius
Posté le 20-01-2004 à 14:01:03  profilanswer
 

j'ecrase pas les données, je lis tant que j'ai rien recu.

n°616583
chrisbk
-
Posté le 20-01-2004 à 14:04:26  profilanswer
 

ah ouais exact
bon, pour ton pb :
 
 

Code :
  1. char buf[1024];
  2. int size_recu=-1;
  3. memset(buf,0,1024);
  4. while(size_recu==-1)
  5. size_recu = recv( to_server_socket, buf, 1024, 0);
  6. cout << "Receive > " << buf << endl;


 
 

n°616595
olympius
Posté le 20-01-2004 à 14:18:16  profilanswer
 

Merci ca marche.
Peux tu m'expliquer un peu memset(buf,0,1024) ??
 
Merci

n°616600
chagarou
Posté le 20-01-2004 à 14:23:15  profilanswer
 

Ca met tout les caracteres de ton tableau a la valeur 0.  
Comme tu le sait le 0 indique une fin de chaine, donc le cin arretera l'affichage de la chaine au premier caractere '\0' qui rencontrera.
Ca ne modifie pas la taille du tableau ca arrete juste l'affichage ou il faut. :)


Message édité par chagarou le 20-01-2004 à 14:25:30
n°616602
chrisbk
-
Posté le 20-01-2004 à 14:24:17  profilanswer
 

Ben fo que tu regardes comment sont faites les chaines de caracteres en C.
en C une chaine de caractere se termine par \0 (autrement dit 0. le chiffre, pas le caractere, hein ? pas '0' quoi). donc au debut j'ecrase tout le buffer avec mes 0 comme ca quelque soit le nombre de caractere lu j'ai tjs un 0 a la fin (enfin, presque sauf si tu lis 1024 caractere, la ca va planté. )

n°616603
olympius
Posté le 20-01-2004 à 14:24:26  profilanswer
 

AH OK
Trop bon.
 
Merci a tous


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  (Débutant) taille tableau caractère

 

Sujets relatifs
ajouter tableauTableau de données
actualiser le tri dans un tableau sous excelFaire un tableau dans un JTEXTAREA ??
[php] Patern, remplacer dans une chaine de caractèreQuestion de débutant .... comment remplacer les ' ?
[CSS] Centrer du texte uniquement dans la troisième colonne du tableau[Pascal] Demande 2 fois le caractère sinon ca plante. (ouf Résolu)
Redimensionner un tableau de pointeurs[html] iframe qui s'adapte automatiquement a la taille du contenu ?
Plus de sujets relatifs à : (Débutant) taille tableau caractère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR