J'ai écrit ci-dessous le code à lire ligne par ligne depuis stdin ex.Essayer de diviser par deux délimiteurs et cela ne fonctionne pas - C
city=Boston;city=New York;city=Chicago\n
puis diviser chaque ligne par ';' délimiter et imprimer chaque enregistrement. Ensuite, dans une autre boucle, j'essaie de diviser l'enregistrement par le délimiteur '=' pour obtenir les valeurs réelles. Mais pour une raison quelconque, la boucle (principale) principale ne boucle pas au-delà de la première itération, pourquoi?
char* del1 = ";";
char* del2 = "=";
char input[BUFLEN];
while(fgets(input, BUFLEN, fp)) {
input[strlen(input)-1]='\0';
char* record = strtok(input, &del1);
while(record) {
printf("Record: %s\n",record);
char* field = strtok(record, &del2);
while(field) {
printf("Field: %s\n",field);
field = strtok(NULL, &del2);
}
record = strtok(NULL, &del1);
}
}
Vous ne voulez pas prendre l'adresse de 'del1' et 'del2' - ils sont déjà char *. – pilcrow
oui vous avez raison, je l'ai retapé incorrectement – goe