我寫下面的代碼從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