温馨提示×

C语言怎么读取文件数据并排序

小亿
190
2024-02-21 15:11:28
栏目: 编程语言

下面是一个示例程序,演示了如何读取文件数据并对数据进行排序:

#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 的文件,并在文件中输入一些整数数据,每个数据一行。运行程序后,它将读取文件数据并输出排序后的结果。

0