je suis en train de faire un petit programme client et serveur qui echange
des messages. Dans cetains messages il y a deux valeur separer par des deux
points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il
utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais
ca ne marche pas.
j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
je me suis trompe en ecrivant:
sscanf(msg, "%s:%s", var1, var2);
sscanf ecrit sur une cible qu'il faut ensuite faire affiché avec une autre fonction..
sscanf fait une saisie formate depuis une chaine mais y a t'il un moyen de recuperer les chaines separe par le :
Yves ROMAN
bonjour
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Surement si les valeurs contiennet des espaces. Il faut alors utiliser un syntaxe particulière dans le %s (que je ne connais pas)
Si ta chaine contient uniquement var1 + ':' + var2, tu peux utiliser strchr() :
Bien sur, il faut rajouter des controles de tailles, etc...
bonjour
je suis en train de faire un petit programme client et serveur qui echange
des messages. Dans cetains messages il y a deux valeur separer par des deux
points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il
utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais
ca ne marche pas.
Surement si les valeurs contiennet des espaces.
Il faut alors utiliser un syntaxe particulière dans le %s (que je ne connais
pas)
Si ta chaine contient uniquement var1 + ':' + var2, tu peux utiliser strchr() :
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Surement si les valeurs contiennet des espaces. Il faut alors utiliser un syntaxe particulière dans le %s (que je ne connais pas)
Si ta chaine contient uniquement var1 + ':' + var2, tu peux utiliser strchr() :
Merci c parfait je vais utiliser ca. Mais si quelqu'un a la solution avec le sscanf qu'il n'esite pas.
Richard Delorme
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
sscanf(msg, "[^:]:%s", var1, var2);
-- Richard
je suis en train de faire un petit programme client et serveur qui echange
des messages. Dans cetains messages il y a deux valeur separer par des deux
points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il
utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais
ca ne marche pas.
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
sscanf(msg, "[^:]:%s", var1, var2);
-- Richard
Horst Kraemer
Bakounine wrote:
bonjour
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Parce que sscanf(msg,"%s:"%s",p1,p2) ne dit pas: arrêter la lecture de la premiere chaîne avant le premier ":". Le premier "%s" lit tout si la chaine entière ne contient aucun espace.
Quand la syntaxe de la ligne est *exactement*
|xxxxxxxxx:yyyyyyyyyy|
sans aucune espace ou TAB alors
sscanf(buf,"%[^:]:%s",pc1,pc2)
fait ce que tu attends. Voir la documentation du format "%[...]"
-- Horst
Bakounine <nospam@nospam.org> wrote:
bonjour
je suis en train de faire un petit programme client et serveur qui echange
des messages. Dans cetains messages il y a deux valeur separer par des deux
points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il
utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais
ca ne marche pas.
Parce que sscanf(msg,"%s:"%s",p1,p2) ne dit pas: arrêter la lecture de
la premiere chaîne avant le premier ":". Le premier "%s" lit tout si
la chaine entière ne contient aucun espace.
Quand la syntaxe de la ligne est *exactement*
|xxxxxxxxx:yyyyyyyyyy|
sans aucune espace ou TAB alors
sscanf(buf,"%[^:]:%s",pc1,pc2)
fait ce que tu attends. Voir la documentation du format "%[...]"
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Parce que sscanf(msg,"%s:"%s",p1,p2) ne dit pas: arrêter la lecture de la premiere chaîne avant le premier ":". Le premier "%s" lit tout si la chaine entière ne contient aucun espace.
Quand la syntaxe de la ligne est *exactement*
|xxxxxxxxx:yyyyyyyyyy|
sans aucune espace ou TAB alors
sscanf(buf,"%[^:]:%s",pc1,pc2)
fait ce que tu attends. Voir la documentation du format "%[...]"
-- Horst
Emmanuel Delahaye
Richard Delorme wrote on 25/04/05 :
sscanf(msg, "[^:]:%s", var1, var2);
Marche pas...
#include <stdio.h>
int main (void) { char const s[] = "valeurun:valeurdeux";
Bravo Horst, tu peux revenir la semaine prochaine!
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"There are 10 types of people in the world today; those that understand binary, and those that dont."
hibiki
bonjour
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Merci d'avance pour votre reponse.
sscanf(buffer, "%s:%s", var1, var2); Si ça ne marche pas c'est peut-être que la chaîne doit se terminer par n ou
-- Salutations,
Joachim Naulet
06 14 90 06 21 http://jnaulet.no-ip.com
bonjour
je suis en train de faire un petit programme client et serveur qui echange
des messages. Dans cetains messages il y a deux valeur separer par des deux
points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il
utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais
ca ne marche pas.
Merci d'avance pour votre reponse.
sscanf(buffer, "%s:%s", var1, var2);
Si ça ne marche pas c'est peut-être que la chaîne doit se terminer par
n ou
je suis en train de faire un petit programme client et serveur qui echange des messages. Dans cetains messages il y a deux valeur separer par des deux points.
ex:
valeurun:valeurdeux
j'aimerais savoir si sscanf permet de gerer le separateur : ou faut il utiliser une autre fonction? j'ai utilise sscanf("%s:%s", var1, var2); mais ca ne marche pas.
Merci d'avance pour votre reponse.
sscanf(buffer, "%s:%s", var1, var2); Si ça ne marche pas c'est peut-être que la chaîne doit se terminer par n ou
-- Salutations,
Joachim Naulet
06 14 90 06 21 http://jnaulet.no-ip.com
Emmanuel Delahaye
hibiki wrote on 25/04/05 :
sscanf(buffer, "%s:%s", var1, var2);
Marche pas. La bonne réponse a été donnée par Horst. (C'est pas trivial, et les vrais spécialistes de *scanf() sont rares, alors à encadrer...)
Si ça ne marche pas c'est peut-être que la chaîne doit se terminer par n ou