【发布时间】:2015-02-28 23:24:01
【问题描述】:
好的,所以我有一个带有整数的文件,例如:
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 与从文件中读取数字有什么关系?请澄清。
-
我不确定我是否做对了。您正在尝试将文件中的值加载到
Elements 的userId字段中,该字段存在于您的elements数组中? -
@OldProgrammer 没什么,我不知道如何将文件读取到结构中。 qsort 是下一位
-
@RichouHunterc 我正在尝试将文件加载到我的第二列
-
要挑剔:你的结构没有“列”。实际上,您的结构恰好包含两个值。你有一个这个结构的数组。而且您似乎想在数组中每个元素的第一个字段中加载文件数据。使用正确的术语将帮助您自行查找相关信息。
标签: c arrays file sorting structure