下面是一個示例程序,演示了如何讀取文件數據并對數據進行排序:
#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
的文件,并在文件中輸入一些整數數據,每個數據一行。運行程序后,它將讀取文件數據并輸出排序后的結果。