c语言图书信息问题编写

图书信息包括:书名、出版社、价格,从book.txt文件中读取5条图书信息,将其按照价格从低到高排序后,输出全部图书信息至bookpaixu.txt中,并在屏幕显示

你看看这个链接
http://t.csdn.cn/h4mnv

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_BOOKS 5

typedef struct {
    char title[50];
    char publisher[50];
    float price;
} Book;

int compare(const void *a, const void *b) {
    return ((Book *)a)->price - ((Book *)b)->price;
}

int main() {
    char file_name[50] = "book.txt";
    char output_file[50] = "bookpaixu.txt";
    FILE *f = fopen(file_name, "r");
    if (f == NULL) {
        printf("Failed to open file %s\n", file_name);
        return 1;
    }

    Book books[MAX_BOOKS];
    int i = 0;
    while (i < MAX_BOOKS && fscanf(f, "%[^,],%[^,],%f\n", books[i].title, books[i].publisher, &books[i].price) == 3) {
        i++;
    }
    fclose(f);

    qsort(books, MAX_BOOKS, sizeof(Book), compare);

    f = fopen(output_file, "w");
    if (f == NULL) {
        printf("Failed to create output file %s\n", output_file);
        return 1;
    }

    printf("Sorted Books:\n");
    for (int i = 0; i < MAX_BOOKS; i++) {
        printf("%s, %s, %.2f\n", books[i].title, books[i].publisher, books[i].price);
        fprintf(f, "%s,%s,%.2f\n", books[i].title, books[i].publisher, books[i].price);
    }

    fclose(f);
    return 0;
}