begin process at 2012 05 29 17:12:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de fonction gettok() pour un bot IRC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de fonction gettok() pour un bot IRC

vendredi 10 décembre 2004 à 20:59:42 | Probleme de fonction gettok() pour un bot IRC

Tidam

Voilou je m'explique, je suis en train de coder un bot IRC mais j'ai un ptit probleme. J'ai cree ma propre fonction gettok (d'ou vient surement le probleme).
J'explique tout d'abbord la premiere partie du programme (que je ne vais pas copier coller car trop long :p) donc c'est pour l'instant un socket simple se connectant a IRC (Quakenet pour etre precis) avec comme partie interessante :
char buffer[1000];
memset(buffer,0,sizeof(buffer));
char buffer2[1000];
memset(buffer,0,sizeof(buffer));
while (loop == '1')
{
while ((*buffer != '\n'))
{
recv(IrcSock,buffer,1,0);
strcat(buffer2,buffer);
}
printf("%s",buffer2);
IrcCheck(buffer2);
strcpy(buffer,"");
strcpy(buffer2,"");
}

Jusque la pas de probleme. Le probleme vient ensuite :
int IrcCheck(char temp[])
{
if ( strstr(temp,"PING") && !strstr(temp,"V") )
{
temp[1] = 'O';
send(IrcSock,temp,strlen(temp),0);
return 0;
}
if ( IrcOk == '0' )
{
if ( strstr(temp,"AUTH") )
{
char *temps = new char [200];
sprintf(temps,"USER Tbot Tbot Tbot :by Tidam\n");
send(IrcSock,temps,strlen(temps),0);
sprintf(temps,"NICK TbotPick\n");
send(IrcSock,temps,strlen(temps),0);
return 0;
}
if ( strcmp(gettok(temp,2," "),"376") == 0 )
{
char *temps = new char [200];
sprintf(temps,"JOIN #Tid@m\n");
send(IrcSock,temps,strlen(temps),0);
IrcOk = '1';
return 0;
}
}
else
{
if ( strcmp(gettok(temp,4," "),IrcChan) == 0 )
{
printf("\n! ! ! test ! ! !\n\n");
if ( strcmp(gettok(temp,2,":"),"salut") == 0 )
{
char *temps = new char [200];
sprintf(temps,"PRIVMSG %s :Salut !\n",IrcChan);
send(IrcSock,temps,strlen(temps),0);
}
return 0;
}
}
}

Tout marche jusqu'a IrcOk='1'; c'est a dire jusqu'a ce qu'il cherche la partie if ( strcmp(gettok(temp,4," "),IrcChan) == 0 ) car le programme plante avant le printf("\n! ! ! test ! ! !\n\n");

La fonction gettok que j'ai faite est la suivante :
char *gettok(char *temp,int num,char *tok)
{
char *token;
token = strtok(temp,tok);
for (int i = 1;i < num;i++)
{
token = strtok(NULL,tok);
}
return token;
}

Elle est bien declaree et marche normalement. Mon probleme est surtout pourquoi if ( strcmp(gettok(temp,2," "),"376") == 0 ) marche et pas if ( strcmp(gettok(temp,4," "),IrcChan) == 0 ). Si vous voyez j'en serais ravis :p

PS: En ce qui concerne les variables, elles sont toutes bien declarees et IrcChan est du type char *
Marci d'avance !
vendredi 10 décembre 2004 à 21:16:29 | Re : Probleme de fonction gettok() pour un bot IRC

Tidam

Je vient de voir un truc deja:
pour if ( strcmp(gettok(temp,4," "),IrcChan) == 0 ) c'est a peu pres normal car gettok(temp,4," ") n'existe pas enfin il n'y as que 3 token dans la premiere phrase qu'il essaye de lire apres le IrcOk='1'; donc il faudrait modifier ma fonction gettok pour qu'elle arrete quand il n'y as plus rien.

Mais pour if ( strcmp(gettok(temp,3," "),IrcChan) == 0 ) ca marche, mais il plante juste apres, if ( strcmp(gettok(temp,2,":"),"salut") == 0 ) alors que cette fois ci je recoit
":blabla!bla@blabla.quakenet.org Machin PRIVMSG #channel :salut" ... dans la logique ca devrait marcher ...

Je vais essayer de refaire une fonction gettok lisant toute seule les phrases, car je pense que le probleme vient de cette fonction (je suis même sure :p)


Cette discussion est classée dans : buffer, temps, temp, char, gettok


Répondre à ce message

Sujets en rapport avec ce message

je ne comprend pas [ par lektrosonic ] Pourquoi a la fin du for, run_config ne vaut pas 1 mais 951742 ??void load_lang(){              auto int i;       auto char temp_buffer[MAX_PATH];     char [10] dans char [16][10] [ par Stutu ] Bonjour à tous, Je m'explique j'ai un char buffer[10] que je voudrais mettre dans un char temp[16][10] car je vais devoir mettre 16 fois buffer[10] d probleme avec une chaine de caractere [ par joben22 ] Bonsoir, j'ai un petit soucis avec une fonction que j'essaie de coder. En fait, je lis le contenue d'un fichier, le place dans un char* et la j'aimer ecrire le texte de ma variable dans GetModuleFileName [ par sokotanic ] salut j'ai un probleme char temp[MAX_PATH]; temp = "mon text"; len = GetModuleFileName(NULL,temp,MAX_PATH); la compilation marche pas et j'ai eu ses Probleme wsock protocole HTTP [ par Target67 ] Alors je veux faire une petite appli qui permet de télécharger des fichiers sur le net suivant le protocole HTTP dont voici le code de la partie qui v char* dans un destructeur [ par pepsidrinker ] Premierement, merci de lire ce post, et merci a tous ceux qui veulent maider. Jai le probleme suivant: Jassigne des char* avec 'new[]' dans le constru analyseur lexical pascal [ par perrotta ] Bonjour, dsl pour ma langue je parle pas bien le français; je suis entrin de devlopper un analyseur lexical pour un programme (pascal) prèci ,et j'ai fread & fwrite [ par mosted ] Bonjour, Etant débutant , j'ai un soucis avec un code à faire pour l'école. Nous devons lire des structures d'un fichier binaire. Voici mon code [c Problème Liaison RS232 [ par maximus4 ] Bonjour,j'utilise un code que j'ai trouvé sur le site pour lister les ports RS232.J'ai 4 ports com le résultat m'affiche 4 com1code :void SonarFrm::li copier une valeur dans une structure [ par Kurpeus1 ] Bonjour, désolé de reposer la question mais j'ai un soucis depuis plusieurs jour et je n'arrive pas a le résoudre. Il me semble pourtant que pour un d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,859 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales