编程序将文本文件中的内容读取到结构体类型数组中保存,并输出到屏幕。结构体类型包括图书名称、图书作者、图书价格和库存4项成员,文件名为”books.txt“,打开文件的语句中请勿写文件路径,仅给出文件名即可;读取文件采用fscanf函数。C语言
时间: 2024-02-13 10:59:37 浏览: 77
好的,以下是实现该功能的示例代码:
```c
#include <stdio.h>
#define MAX_BOOKS 100 // 最大图书数量
struct Book {
char name[50]; // 图书名称
char author[30]; // 图书作者
double price; // 图书价格
int stock; // 库存
};
int main() {
struct Book books[MAX_BOOKS]; // 定义结构体类型数组
FILE *fp;
int i, n;
fp = fopen("books.txt", "r"); // 打开文件
if (fp == NULL) { // 判断文件是否打开成功
printf("Failed to open file!\n");
return 1;
}
n = 0; // 初始化图书数量
// 读取文件内容到结构体数组中
while (fscanf(fp, "%s %s %lf %d", books[n].name, books[n].author, &books[n].price, &books[n].stock) != EOF) {
n++;
}
fclose(fp); // 关闭文件
// 输出结构体数组中的内容到屏幕
printf("Book List:\n");
for (i = 0; i < n; i++) {
printf("%s\t%s\t%.2f\t%d\n", books[i].name, books[i].author, books[i].price, books[i].stock);
}
return 0;
}
```
在该示例代码中,我们首先定义了一个结构体类型 `Book`,包括图书名称、图书作者、图书价格和库存 4 项成员。然后定义了一个结构体类型数组 `books`,用于存储从文件中读取的图书信息。
在 `main` 函数中,我们首先打开文件 `books.txt`,并判断文件是否打开成功。然后使用 `fscanf` 函数逐行读取文件内容,并将读取到的信息存储到结构体数组 `books` 中,同时记录图书数量 `n`。最后,关闭文件,并将结构体数组中的内容输出到屏幕上。
需要注意的是,在 `fscanf` 函数中,我们使用了 `%s`、`%lf` 和 `%d` 等格式化字符串,分别表示读取字符串、双精度浮点数和整数。在输出函数 `printf` 中,我们同样使用了相应的格式化字符串,以正确地输出结构体数组中的内容。
希望这个示例代码能够帮到你!
阅读全文