下面是一个示例程序,演示了如何读取文件数据并对数据进行排序:
#include <stdio.h>
#include <stdlib.h>
// 用于比较两个整数的函数,用于排序
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
FILE *file;
int data[100]; // 数组用于存储读取的数据
int numData = 0; // 存储读取的数据数量
// 打开文件
file = fopen("data.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 读取文件数据
while (fscanf(file, "%d", &data[numData]) != EOF) {
numData++;
}
// 关闭文件
fclose(file);
// 对数据进行排序
qsort(data, numData, sizeof(int), compare);
// 打印排序后的数据
printf("排序后的数据:\n");
for (int i = 0; i < numData; i++) {
printf("%d\n", data[i]);
}
return 0;
}
在这个示例程序中,我们首先定义了一个用于比较两个整数的函数 compare
,用于在排序时调用。然后我们打开一个名为 data.txt
的文件,读取文件数据并存储在一个数组中。接着我们使用 qsort
函数对数组中的数据进行排序,最后打印排序后的数据。
请确保在运行程序之前创建一个名为 data.txt
的文件,并在文件中输入一些整数数据,每个数据一行。运行程序后,它将读取文件数据并输出排序后的结果。