图书信息包括:书名、出版社、价格,从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;
}