在下面的代码中,我使用 strtok 从文件中解析一行代码,如下所示:
1023.89,863.19 1001.05,861.94 996.44,945.67 1019.28,946.92 1023.89,863.19
由于文件可以有不同长度的行,我不使用 fscanf。下面的代码除了一个小故障外有效。它循环了太多次并读入一个长的空字符串“”,然后再次循环识别空标记“”并退出while循环。我不知道为什么会这样。
任何帮助将不胜感激。
fgets(line, sizeof(line), some_file);
while ((line != OPC_NIL) {
token = strtok(line, "\t"); //Pull the string apart into tokens using the commas
input = op_prg_list_create();
while (token != NULL) {
test_token = strdup(token);
if (op_prg_list_size(input) == 0)
op_prg_list_insert(input,test_token,OPC_LISTPOS_HEAD);
else
op_prg_list_insert(input,test_token,OPC_LISTPOS_TAIL);
token = strtok (NULL, "\t");
}
fgets(line, sizeof(line), some_file);
}