定义一个图书类结构体(成员包括编号,出版日期和价格)变量个数为4.使用读写数据块函数,把书本信息写入文件后,再读出
时间: 2024-02-19 10:02:28 浏览: 83
好的,以下是一个简单的实现:
```c++
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
// 定义图书结构体
struct Book {
int id; // 编号
time_t publishDate; // 出版日期
double price; // 价格
};
// 写入数据块
void writeBlock(ofstream& file, Book books[], int len) {
for (int i = 0; i < len; i++) {
file.write((char*)&books[i], sizeof(Book));
}
}
// 读取数据块
void readBlock(ifstream& file, Book books[], int len) {
for (int i = 0; i < len; i++) {
file.read((char*)&books[i], sizeof(Book));
}
}
int main() {
// 创建4个图书对象
Book books[4] = {
{1, time(0), 10.0},
{2, time(0), 20.0},
{3, time(0), 30.0},
{4, time(0), 40.0}
};
// 打开文件
ofstream outFile("books.dat", ios::binary);
// 写入数据块
writeBlock(outFile, books, 4);
// 关闭文件
outFile.close();
// 重新打开文件
ifstream inFile("books.dat", ios::binary);
// 读取数据块
Book readBooks[4];
readBlock(inFile, readBooks, 4);
// 输出读取到的图书信息
for (int i = 0; i < 4; i++) {
cout << "Book " << i + 1 << ":\n";
cout << "ID: " << readBooks[i].id << endl;
cout << "Publish Date: " << ctime(&readBooks[i].publishDate);
cout << "Price: " << readBooks[i].price << endl;
cout << endl;
}
// 关闭文件
inFile.close();
return 0;
}
```
这个程序创建了4个图书对象,然后使用二进制文件流将它们写入到文件中。接着,重新打开文件,读取出数据块并输出每本书的信息。
阅读全文
相关推荐


















