c语言对文件数据排序
时间: 2023-12-01 08:04:02 浏览: 79
要对文件数据排序,可以使用C语言的标准库函数`qsort()`。`qsort()`函数可以对任意类型的数据进行排序,包括读入的文件数据。
下面是一个示例代码,演示如何读入文件数据并对其进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
// 比较函数,用于qsort()排序
int cmp(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
FILE *fp;
int data[1000]; // 假设最多读入1000个整数
int i, n;
// 打开文件,读入数据
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("打开文件失败!");
return -1;
}
n = 0;
while (!feof(fp)) {
fscanf(fp, "%d", &data[n]);
n++;
}
// 对数据进行排序
qsort(data, n, sizeof(int), cmp);
// 输出结果
for (i = 0; i < n; i++) {
printf("%d ", data[i]);
}
// 关闭文件
fclose(fp);
return 0;
}
```
这个例子中,我们假设要排序的数据存储在名为"data.txt"的文件中,每行一个整数。首先我们打开文件并读入数据,然后调用`qsort()`函数对数据进行排序,最后输出结果并关闭文件。
需要注意的是,这个例子中假设最多读入1000个整数,如果文件中的数据超过了这个限制可能会导致程序出错。实际使用时需要根据实际情况调整数组大小。