Povre beginner de retour car a le meme probleme...

Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 28 nov. 2003 à 16:42
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 29 nov. 2003 à 17:53
Hello jai demander hier comment faire pour affeter une string du type

"prenom,nom,age,ville" ds des string separé (pour prenom nom et ville) et ds un entier pour lage....

Je lai fai en scrutant caractere apres caractere, ca marche mais c compliqué....

On ma repondu (et je remercie ceux qui mon repondu) que je pouvais utilisé la fonction SSCANF, ca que jais fais, mais ca ne marche pas: en effet en faisant un truc du type:

char s[50],s[10],s2[10],s3[10];
int i;

sscanf(str,"%s,%s,%d,%s",s1,s2,i1,s3)

s1 prend alors la valeur de la string (avec les virgules!)
s1 est egale a "prenom,nom,age,ville" (ds la limite de 10caractere)

si vs avez une autres solution merci!

3 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
28 nov. 2003 à 18:13
Salut,
Pourquoi tiens tu absolument a utiliser une fonction toute faite ?
Ta méthode caractere par caractere est compliquée, ok, mais elle marche et c'est le principal. En plus ca sera surement plus performant que les sscanf et compagnie.
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
28 nov. 2003 à 21:01
Tu pourrais par exemple placer le string à récupérer dans un fichier .txt et puis tu utilise fscanf de cette manière:

FILE *pFile = fopen( "LeFich.ier", "r" );
char s[50],s1[10],s2[10],s3[10];
int i;

fscanf( pFile, "%s,%s,%d,%s", &s1, &s2, &i, &s3 );


ça va à chaque fois récupérer les caractère jusqu'à ce que la ',' apparaissent, j'espère que ça n'est pas trop compliqué, je sais que ce n'est pas toujours le plus marrant à faire (de placer dans un fichier) mais ici ça peut être utile...

[DmX]
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
29 nov. 2003 à 17:53
En fait c'est moi qui avait proposé la solution avec scanf mais apparemment je me suis planté dans le fonctionnement de scanf pour la lecture des chaînes de caractères, la fonction ne s'arrête pas sur les virgules mais sur les espaces pour délimiter les différents champs.
0
Rejoignez-nous