我写下面的代码从stdin ex逐行读入。试图由两个分隔符分裂,它不起作用 - C
city=Boston;city=New York;city=Chicago\n
然后用';'分隔每一行。分隔并打印每条记录。 然后在另一个循环中,我尝试按'='分隔符分割记录以获得实际值。但出于某种原因,主(第一)循环不会循环超出第一次迭代,为什么?
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);
}
}
你不是要取'del1'和'del2'的地址 - 它们已经是char *了。 – pilcrow 2009-11-13 03:55:09
是的,你说得对,我错误地重新输入了 – goe 2009-11-13 04:02:00