用C语言输出采用数组实现图书浏览 读取book.txt文件中信息并输出。 编程要求 输入要求 book.txt。 输出要求 依次输出所有图书信息(书号、书名、价格),包括文件前两行的标题说明信息。
时间: 2024-11-03 17:22:06 浏览: 33
在C语言中,我们可以使用`stdio.h`库中的文件操作函数来完成这个任务。首先,需要打开`book.txt`文件,然后逐行读取内容,并处理每一行的数据。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LINES 100 // 文件中最多行数
// 定义每本书的信息结构体
typedef struct {
int book_id;
char title[50];
float price;
} Book;
void read_books_from_file(char *filename) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("Error opening file.\n");
return;
}
// 文件头部跳过
fgets(file_title, sizeof(file_title), file);
fgets(file_description, sizeof(file_description), file);
// 初始化书籍数组
Book books[MAX_LINES];
int num_books = 0;
// 读取并处理文件内容
while (!feof(file)) {
char line[100];
fgets(line, sizeof(line), file);
if (sscanf(line, "%d %[^,],%f", &books[num_books].book_id, books[num_books].title, &books[num_books].price) == 3) {
num_books++;
} else {
break; // 如果不是有效的数据,则停止读取
}
}
fclose(file);
// 输出书籍信息
for (int i = 0; i < num_books; i++) {
printf("Book ID: %d, Title: %s, Price: %.2f\n", books[i].book_id, books[i].title, books[i].price);
}
}
int main() {
const char *filename = "book.txt";
read_books_from_file(filename);
return 0;
}
```
**相关问题--:**
1. 这段代码中为什么要定义一个`Book`结构体?
2. `fgets()`函数的作用是什么?
3. 文件操作结束后,为什么要在`fclose(file)`之后再输出书籍信息?
阅读全文