Итак, у меня есть файл с целыми числами, например:C копирование файла в структуру
14
22
82
53
61
74
47
95
, и я хочу, чтобы скопировать его в мою структуру, проблема в том, что моя структура имеет 2 колонки, и Я не знаю, как скопировать файл в один.
Мой вопрос: есть ли быстрая и простая функция, например qsort, которая автоматически скопирует мой файл?
#include <stdio.h> /* printf */
#include <stdlib.h> /* qsort */
struct Element
{
int userId;
int score;
};
struct Element elements[] = {
{1, 13},
{2, 9},
{3, 13},
{4, 19},
{5, 8},
{6, 11},
{7, 14},
{8, 17},
};
int ascendingSortCompareFunction (const void * a, const void * b)
{
return (((struct Element *)a)->score - ((struct Element *)b)->score);
}
int descendingSortCompareFunction (const void * a, const void * b)
{
return ((struct Element *)b)->score) - (((struct Element *)a)->score;
}
int main()
{
int n;
int count;
count = sizeof(elements)/sizeof(elements[0]);
qsort(elements, count, sizeof(elements[0]), ascendingSortCompareFunction);
printf ("UserID\tScore (Ascending Sort)\n");
for (n = 0 ; n < count ; n++)
printf ("%d\t%d\n", elements[n].userId, elements[n].score);
qsort(elements, count, sizeof(elements[0]), descendingSortCompareFunction);
printf ("UserID\tScore (Descending Sort)\n");
for (n = 0 ; n < count ; n++)
printf ("%d\t%d\n", elements[n].userId, elements[n].score);
getchar();
return 0;
}
Извините, но то, что делает QSort должны делать с номерами для чтения из файл? Просьба уточнить. – OldProgrammer
Я не уверен, правильно ли я понял. Вы пытаетесь загрузить значения, которые находятся в вашем файле, в поле 'userId' элемента' Элемент ', присутствующего в вашем массиве' elements'? – RichouHunter
@OldProgrammer Ничего, я понятия не имею, как прочитать файл в структуре. qsort - следующий бит –