【发布时间】:2009-11-13 03:45:11
【问题描述】:
我写了下面的代码,从标准输入中逐行读取。
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 *了。
-
是的,你是对的,我重新输入错误