rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 15 oct. 2006 à 21:43
Salut,
en gros:
Pour chaque ligne
Lire le premier
Si premier = = I
lire string
Si premier = = B
lire les 4 ints
Si premier = = KJ
lire les 3 ints
Fin Pour
.. apres a toi de voir comment stocker ca,
un tableau pour tous les I, un pour les B un pour les KJ ... tout depend de son utilité ..
Louis
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 16 oct. 2006 à 00:48
Salut :
Remarque : il vaut mieux ne pas mettre des ";" à la fin de chaque ligne.
// cette fonction découpe une phrase en un tableau
// de chaînes de caractères
char ** tokenize (char * txt) {
const int MAX = 10;
const char * DELM = " ";
char ** tok = (char **)malloc (MAX*sizeof(char *));
int I = 0;
char * sep = strtok (txt, DELM);
while(sep != NULL) {
tok [I++] = (char *)strdup (sep);
sep = strtok (NULL, DELM);
}
return tok;
}
FILE * stream;
stream = fopen ("file.dat", "r");
if (!stream)
return;
char buffer [BUFSIZ];
while (fgets (buffer, BUFSIZ, stream) != NULL)
{
char ** tokens = tokenize (buffer);
if (tokens) {
if (!strcmpi (tokens [0], "I") {
// traitement
}
else if (!strcmpi (tokens [0], "B") {
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 oct. 2006 à 01:36
strtok doit etre definitivement abandonné.
Elle se sert d'une variable implicite, la même quel que soit le thread appelant, c'est une pure calamité issue d'un autre age. Les bugs qu'elle peut engendrer seront très difficiles à retrouver.
2 pointeurs suffisent pour le même travail mais avec un résultat assuré.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 16 oct. 2006 à 19:11
Salut :
Comment peut on remplacer "strtok" par deux pointeurs?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 16 oct. 2006 à 21:53