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

  FORUM HardWare.fr
  Programmation

  aide rapide sscanf

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide rapide sscanf

n°60428
slvn
Posté le 19-09-2001 à 18:04:51  profilanswer
 

voila :
char*data="nom=my_name&prenom=my_fisrt_name";
char c1[25],c2[25];
 
alors >> sscanf(data,"nom=%s&prenom=%s",c1,c2) != 2
dans nom j ai : my_name&preom=my_fisrt_name
dans prenom j ai : $
 
ou ca cloche ????

mood
Publicité
Posté le 19-09-2001 à 18:04:51  profilanswer
 

n°60430
minusplus
Posté le 19-09-2001 à 18:12:43  profilanswer
 

%s matche une chaine jusqu'à un whitespace (tab, espace, etc.)

n°60432
slvn
Posté le 19-09-2001 à 18:19:05  profilanswer
 

et pour que ca s arrete au "&" je peux faire ca d une maniere simple ??

n°60433
minusplus
Posté le 19-09-2001 à 18:28:50  profilanswer
 

expression regulière (doit bien y avoir une lib en C)
ou getc + scan à la patte.

n°60436
barbarella
Posté le 19-09-2001 à 18:35:15  profilanswer
 

tu fais un script en C pour recup els param du CGI ?
 
si oui alors essaie ça
 
change_et(data);
if(sscanf(data,"M=%s O=%s P=%s",nomdico,mot,page) != 3)
{
  erreur = 102;
}
else
.......
 
 
La fonction 'change_et' :
 
void change_et(char *val)
{
  int i;
 
  i = 0;
  while(*(val+i) != '\0')
  {
    if(*(val+i) == '&')
      *(val+i) = ' '; // caractère blanc ascii = 32
 
    i++;
  }
}

 

[edtdd]--Message édité par barbarella--[/edtdd]

n°60437
slvn
Posté le 19-09-2001 à 18:37:10  profilanswer
 

ca se voit tant que ca :)
a premiere vue c est exactement ce qu il faut :)
 
merci:)

n°60438
barbarella
Posté le 19-09-2001 à 18:44:49  profilanswer
 

ah oui,
 
la fonctionne change_et, transforme les '&' en ' ' afin de pouvoir utiliser le sscanf.
 
Attention n'oublie pas que avant le passage de param tu dois transformer les ' ' en '+', sinon t'auras des prob.

n°60523
slvn
Posté le 19-09-2001 à 22:59:59  profilanswer
 

justemement, j ai essayé de passer "aaaa bbbb" dans le premier champs  et il a trouvé "aaaa+bbbb" comme chaine.

n°60527
barbarella
Posté le 19-09-2001 à 23:31:21  profilanswer
 

hehe
 
c'est normal. C'est bien connu la nature n'aime pas le vide. t'as pas encore vu ce qu'il va te faire quand tu vas vouloir passer des chaines comme : l'arrivée des français de 'france'
 
il faut que tu fasses une fonction de codage et de décodage our chaque variable. Normalement les carac doivent être transformé en %XX sauf les chiffres lettre de l'alphabet.

n°60529
slvn
Posté le 19-09-2001 à 23:45:11  profilanswer
 

c est a ce moment que la fonciton que tu m a passé sert non ?!

mood
Publicité
Posté le 19-09-2001 à 23:45:11  profilanswer
 

n°60531
slvn
Posté le 19-09-2001 à 23:45:35  profilanswer
 

je parle de celle d un topic precedent

n°60532
barbarella
Posté le 19-09-2001 à 23:56:34  profilanswer
 

non,
 
ça c'est autre chose.
 
Si tu envoies des variables qui peuvent contenir autre chose que des 012...9A..Za..z tu dois faire une fonction code_champ en faisant une boucle de lecture des char et en transformat les char indésirables par j += sprintf((dest+j),"%%x",(scr+i));
 
%x signifie que tu tranformes en hexa la valeur du caractère  
En fait l'espace va être transformé en %20 (en hexa) le fait de mettre un % de la valeur hexa du char est une convention mais tu peux la changer. Moi j'utilse $ a cause d'un bogue de IE dans un cas très rare.
 
Pour le décodage tu refais la même boucle mais en utilisant  
 sscanf((src+i+1), "%2x", &y)
 
ou 'y' est un : unsigned int
 
soit :  
 
if(*(src+i) == '%';)
{
 sscanf((src+i+1), "%2x", &y)
 *(dest+j) = (char)y;
}
 
enfin un truc du genre :)

 

[edtdd]--Message édité par barbarella--[/edtdd]

n°60770
slvn
Posté le 20-09-2001 à 19:34:47  profilanswer
 

si j ai bien capté :)
sscanf transformes les caracteres speciaux, en %XX où XX est un nombre en hexadecimal, il faut donc que je remplace dnas la chaine ce %XX, par le caractere equivalent en ascii pour al page html,


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

  aide rapide sscanf

 

Sujets relatifs
Débutant recherche aide (delphi)Urgent : besoin d'aide sur un code simple de c++
Delphi: Besoin d'aide !Besoin d'aide pour lancer une commande
Aide sous VB6Aide pour une idée de prog
Aide pour un vrai Newbie !!!...[JAVASCRIPT] textareas / validation de forms, AIDE!!!
BESOIN D'AIDE EN ALGO[ACCESS] Aide sur les conditions dans les macros
Plus de sujets relatifs à : aide rapide sscanf


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