Ниже моя идея, надеюсь, она поможет вам.
Вы можете использовать информацию fgets из этого файла
char line[256];
int first, second, third;
char forth[256];
while (fgets(line, sizeof(line), file)) {
printf("%s", line);
sscanf(line, "[%d] [%d] %d %s\n", &first, &second, &third, forth)
}
Затем, используя strtok
и atoi
(преобразовать строку в int, вы также можете использовать strtol
или sscanf
), чтобы получить все номера каждой строки.
char* token = strtok(line, "-");
while (token != NULL) {
int i = atoi(token)
token = strtok(NULL, "-");
}
Скопируйте значение i
в массив.
Затем создайте функцию для удаления повторяющегося числа, например:
uint32_t delete_duplicate_value (uint32_t * list, uint32_t size) {
for (uint32_t i = 0; i < size; i++) {
for (uint32_t j = i+1; j < size; j++) {
if (list[i] == list[j]) {
for (uint32_t k = j; k < size; k++) {
list[k] = list[k + 1];
}
size--;
j--;
}
}
}
return size;
}