В моем коде ниже я использую 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);
}