定义一个图书类结构体(成员包括编号,出版日期和价格)变量个数为4.使用读写数据块函数,把书本信息写入文件后,再读出
时间: 2024-02-19 21:03:21 浏览: 19
好的,下面是定义一个图书类结构体的代码:
```c
#include <stdio.h>
struct Book {
int id;
char pubDate[20];
float price;
};
int main() {
struct Book books[4];
// 读入图书信息
for (int i = 0; i < 4; i++) {
printf("请输入第%d本书的编号:", i+1);
scanf("%d", &books[i].id);
printf("请输入第%d本书的出版日期:", i+1);
scanf("%s", books[i].pubDate);
printf("请输入第%d本书的价格:", i+1);
scanf("%f", &books[i].price);
}
// 打开文件
FILE *fp = fopen("books.txt", "w");
if (fp == NULL) {
printf("打开文件失败!\n");
return 1;
}
// 写入图书信息
for (int i = 0; i < 4; i++) {
fprintf(fp, "%d %s %.2f\n", books[i].id, books[i].pubDate, books[i].price);
}
// 关闭文件
fclose(fp);
// 重新打开文件
fp = fopen("books.txt", "r");
if (fp == NULL) {
printf("打开文件失败!\n");
return 1;
}
// 读取图书信息
for (int i = 0; i < 4; i++) {
fscanf(fp, "%d %s %f", &books[i].id, books[i].pubDate, &books[i].price);
}
// 关闭文件
fclose(fp);
// 输出图书信息
for (int i = 0; i < 4; i++) {
printf("编号:%d,出版日期:%s,价格:%.2f\n", books[i].id, books[i].pubDate, books[i].price);
}
return 0;
}
```
这个程序会让用户输入4本书的编号、出版日期和价格,然后将这些信息写入到文件`books.txt`中。接着再从文件中读出这些信息,并输出到屏幕上。请注意,输出的价格保留小数点后两位。