efacer les caractere d'un tableau de char

efacer les caractere d'un tableau de char - C - Programmation

Marsh Posté le 28-05-2004 à 21:38:00    

bon voila enfet je stock dans un tableau de char de 255 caractere
des phrase ,mais quant je le reutilise et si la phrase et plus courte  
ben ya des morceau de la phrase precedante qui reste et ce rajoute a celle en cour donc j'ai penser a vider mon tableau mais sa marche po  
j'ai tester plusieur truc que voici:

Code :
  1. char tab[255];
  2. for(;;)
  3. {
  4. cin>>tab;
  5. cout >>tab;
  6. for(int i=0;i2<255;i++)
  7.                                  {
  8.                                  tab[i]='\0';
  9.                                  }
  10. }
  11. /*ou sa*/ memset(tab,'0',255);
  12. /*ou sa*/ memset(tab.message,'\n',1);


 
je sais po trop mais je croi que c'est bon  
merci de vo reponce  .


Message édité par tckoullou le 28-05-2004 à 21:39:41
Reply

Marsh Posté le 28-05-2004 à 21:38:00   

Reply

Marsh Posté le 28-05-2004 à 21:40:44    

y a pas de cout en C :o
mas la peine de mettre 36 zéro, ilte suffit de terminer toutes tes chaines par un '\0' et voilà
si tu veux vider ton tab, tab[0] = '\0' suffit

Reply

Marsh Posté le 28-05-2004 à 21:41:24    

heu sa non plus sa marche po
enfin j'ai po test de metre \0 a la fin de ma chaine mzis le zero en debut sa oui


Message édité par tckoullou le 28-05-2004 à 21:42:33
Reply

Marsh Posté le 28-05-2004 à 21:41:56    

mon cul

Reply

Marsh Posté le 28-05-2004 à 21:42:25    

cout >>tab;  
 
tu crois faire quoi déjà avec ça ?

Reply

Marsh Posté le 28-05-2004 à 21:42:26    

1) Tu es gentil de rédiger ton post dans un orthographe CORRECT et pas dans un SMS Style illisible avant la fin de la soirée, sinon c'est la fermeture et TT, tel que c'est stipulé dans les règles ! Y'en a marre à force !
 
2) Ton code est pourri, tu mélanges C et C++. Donc tu oublies les char[] et autres memset, et tu utilises la STL (std::string pour remplacer le char[] et std::fill pour remplacer les memset. Tu dois inclure les headers <string> et <algorithm> )


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-05-2004 à 21:43:00    

mon nouveau corps me plait beaucoup

Reply

Marsh Posté le 28-05-2004 à 21:43:32    

bon dacor je place le code:
 

Code :
  1. #include <winsock2.h>
  2. // stdio for I/O
  3. #include <stdio.h>
  4. #include<fstream.h>
  5. FD_SET masterSet;
  6. FD_SET WRITE;
  7. HANDLE threadHandle;
  8. HANDLE mutexHandle;
  9. bool gQuitFlag = false;
  10. string     log[50]  ;
  11. #include "fonction.hpp"
  12. #include "threadconex.hpp"
  13. #define MAX_MESSAGE_SIZE 100
  14. struct ENTETE
  15. {
  16.       char  login[20];
  17.       char  message[255];
  18.       int    flag;
  19. } ;
  20. //---------------------------------------------------------------------------
  21. int main(int argc, char* argv[])
  22. {
  23. int serverSocket;
  24.   serverSocket  =startListen(4148);
  25.    //cré le MUTEX
  26.   mutexHandle = CreateMutex(NULL, false, NULL);
  27. if (mutexHandle == NULL) {
  28.  printf("Error creating mutex\n" );
  29.  shutdownServer(serverSocket);
  30.  return 0;
  31. }
  32.       //cré le thread
  33. int threadId;
  34. threadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)acceptingThreadProcedure, &serverSocket, 0, (LPDWORD)&threadId);
  35. if (threadHandle == NULL) {
  36.  printf("Could not start acceptance thread\n" );
  37.  shutdownServer(serverSocket);
  38.  return 0;
  39. }
  40.         Sleep(100);
  41. //-------------2 me etape geration de tou le chat
  42.   FD_ZERO(&masterSet);// met le master set a 0
  43. //---------------------------------------------
  44. ENTETE  entete;
  45. for (;;) {
  46.         Sleep(5);
  47.  if (gQuitFlag) {
  48.   break;
  49.  }
  50.          WaitForSingleObject(mutexHandle, INFINITE);
  51.            FD_SET pollingSet = masterSet;// copy dans un set temporaire
  52.            ReleaseMutex(mutexHandle);
  53.          if (pollingSet.fd_count == 0) {
  54.   continue; //si ya reien dans le set on revien au debut
  55.  }
  56.                 timeval waitTime;
  57.  waitTime.tv_sec = 0;// on met le timed ou t du select a 0
  58.  waitTime.tv_usec = 0;
  59.           int result = select(pollingSet.fd_count, &pollingSet, NULL, NULL, &waitTime);
  60.              if (result == 0) {
  61.         // po de socket en lecture
  62.   continue;
  63.  }
  64.                 if (result == SOCKET_ERROR) {
  65.   printf("Error sur le select()\n" );
  66.   continue;
  67.  }
  68. //-----------------a partir de la on parcour le set pour faire ce quez l'on veut sur celuit ci
  69. for (unsigned int i = 0; i < pollingSet.fd_count; i++)
  70.     {
  71.        unsigned int clientSocket = pollingSet.fd_array[i];
  72.         int nBytes;
  73.        string message;
  74.        string temp ;
  75.        char buffer[50];
  76.        nBytes =recv(clientSocket,(char *)&entete,sizeof(entete), 0);
  77.       //printf("Le login::%s\n",&entete.login);
  78.      // printf("Le texte:%s\n",&entete.message);
  79.       //printf("FLAG:%d\n",&entete.flag);
  80.         if (nBytes == SOCKET_ERROR) {
  81.    int error = WSAGetLastError();
  82.         if (error == WSAECONNRESET) {
  83.     // Verouillage du mutex
  84.     WaitForSingleObject(mutexHandle, INFINITE);
  85.     // enleve le socket du set
  86.     FD_CLR(clientSocket, &masterSet);
  87.     // deverouill ele mutex
  88.     ReleaseMutex(mutexHandle);
  89.     // ferme la socket proprement
  90.     closesocket(clientSocket);
  91.     printf("\nLe socket client :  %d disconnected<.X.>\n", clientSocket);
  92.     continue;
  93.            }
  94.           }
  95.                if (entete.flag ==220)
  96.                               log[i]=entete.login;
  97.              if (entete.flag==240)
  98.                                     {
  99.            int len=strlen( entete.message) ;
  100.           printf("message:%s",&entete.message);
  101.                     for (unsigned int o = 0; o < WRITE.fd_count; o++)
  102.           {
  103.             send(WRITE.fd_array[o],(char *)&entete.message,len, 0);
  104.           }
  105.                                for(int i2=0;i2<255;i2++)
  106.                                  {
  107.                                  entete.message[i2]='\x20';
  108.                                  }
  109.                                 // memset(&entete.message,'\x20',1);
  110.                                   }
  111.      }
  112. }
  113.         return 0;
  114. }
  115. //---------------------------------------------------------------------------


Message édité par tckoullou le 28-05-2004 à 21:44:35
Reply

Marsh Posté le 28-05-2004 à 21:43:38    

:D

Reply

Marsh Posté le 28-05-2004 à 21:44:47    

tckoullou a écrit :

bon oki je balance le code

aux ordures évidemment, pas ici en tout cas

Reply

Marsh Posté le 28-05-2004 à 21:44:47   

Reply

Marsh Posté le 28-05-2004 à 21:45:29    

precision les cout etais juste pour l'ilustration cinon c'est du c la je croit na ??


Message édité par tckoullou le 28-05-2004 à 21:45:59
Reply

Marsh Posté le 28-05-2004 à 21:46:43    

c'est l'un des pires ramassis de <tout sauf code> qu'on est jamais vu

Reply

Marsh Posté le 28-05-2004 à 21:47:20    

a bon tu le pense vraiment

Reply

Marsh Posté le 28-05-2004 à 21:47:29    

Taz a écrit :

c'est l'un des pires ramassis de <tout sauf code> qu'on est jamais vu

tu permet que je mette en signature? :D
 

Reply

Marsh Posté le 28-05-2004 à 21:48:04    

ben didonc c'est un forum d'entrede ou de critique

Reply

Marsh Posté le 28-05-2004 à 21:48:15    

si tu veux, il n'y a guère plus à tirer de ce sujet

Reply

Marsh Posté le 28-05-2004 à 21:48:45    

ouer persone ne me repon quoi

Reply

Marsh Posté le 28-05-2004 à 21:48:48    

Précision : je pense que pour moi, la soirée s'arrètera aux alentours de 22h30. A bon entendeur...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-05-2004 à 21:49:35    

franchement qu'est ce q'il a ce code ??il est fouillit

Reply

Marsh Posté le 28-05-2004 à 21:49:51    

et le troisième épisode de StarGate ?

Reply

Marsh Posté le 28-05-2004 à 21:49:57    

serieu je veut vraiment savoir !!!

Reply

Marsh Posté le 28-05-2004 à 21:50:35    

enfet je suis debutant et j'ai un peut de mal a organiser

Reply

Marsh Posté le 28-05-2004 à 21:50:50    

tckoullou a écrit :

ouer persone ne me repon quoi


Que dire ? En regardant ton code en biais, j'ai l'impression que tu te chies dessus royalement avec les threads, t'utilises des variables globales non synchronisées, le Mutex on se demande à quoi il sert, etc...
 
edit: t'as jusqu'à 22H30 pour réécrire tes posts en FRANCAIS !


Message édité par Harkonnen le 28-05-2004 à 21:51:37

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-05-2004 à 21:51:24    

le problème est que t'as rien bité aux pointeurs et à la gestion de chaînes C, alors je sais pas qu'est-ce que va jouer plus loin

Reply

Marsh Posté le 28-05-2004 à 21:51:49    

ben y ser a bloquet les set de lecture ecriture

Reply

Marsh Posté le 28-05-2004 à 21:52:33    

Spoiler :

réponse impossible à lire

Reply

Marsh Posté le 28-05-2004 à 21:53:21    

tckoullou a écrit :

ben y ser a bloquet les set de lecture ecriture

:pfff:

Reply

Marsh Posté le 28-05-2004 à 21:55:27    

ben serieu qu'est qui va po

Reply

Marsh Posté le 28-05-2004 à 21:55:34    

sa marche o poil

Reply

Marsh Posté le 28-05-2004 à 21:56:20    

tckoullou a écrit :

ben y ser a bloquet les set de lecture ecriture


Sorry l'ami, j'attends pas jusqu'à 22h30. A partir de maintenant, j'applique les règles concernant l'orthographe sur ce forum, car y'a de plus en plus de topics incompréhensibles !
 

Citation :


[12] Rédigez vos messages de manière lisible.
 
    * Dans l'intérêt de tous, il est fortement conseillé de rédiger son post de manière claire, et d'éviter le style SMS suivant : « jé un pb : jariv po a lansé mon log il me sort une ereur ke je pige pas. un coupe de main pliz thx ».
    * C'est pas pour faire plaisir à Maitre Capello, mais uniquement pour obtenir un maximum de réponses. Voyant un message rédigé comme ça, pas mal de gens n'ont pas du tout envie de le lire et encore moins d'y répondre. Donc si vous voulez obtenir des réponses, faites un minimum d'efforts pour rédiger votre demande.
    * De plus, faire une recherche sur ce genre de topic est quasiment impossible : comment deviner qu'il faut entrer de l'esperanto dans la zone de recherche pour trouver ce topic qu'on cherche depuis tant de temps ?
    * Tout topic rédigé dans ce style sera dans un premier temps fermé, et s'il souhaite le reposter, le posteur devra réécrire correctement son topic. Le topic précédent sera alors supprimé pour éviter le double emploi. Si la deuxième formulation est aussi incompréhensible que la première, un séjour chez les télétubbies permettra au dit posteur de bucher son précis d'orthographe.
    * Il ne s'agit pas d'écrire un prix Pullitzer, mais uniquement d'adopter un style de rédaction clair afin que tout le monde ait envie de lire le topic et éventuellement d'y répondre.  


A toi de faire ce qu'il faut.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed