c++stl管理系统要有文件实现一下
时间: 2024-04-18 13:28:56 浏览: 95
C++ STL技术 学生管理系统 visual studio开发 面向对象程序设计 课程设计 txt文件输出
当然可以!以下是一个简单的示例,展示了如何使用C++ STL来管理一个文件系统:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
struct File {
std::string name;
int size;
};
class FileSystem {
private:
std::vector<File> files;
public:
void addFile(const std::string& name, int size) {
files.push_back({name, size});
}
void deleteFile(const std::string& name) {
// 使用 STL 的 erase-remove idiom 删除文件
files.erase(std::remove_if(files.begin(), files.end(), [&](const File& file) {
return file.name == name;
}), files.end());
}
void printFiles() const {
for (const auto& file : files) {
std::cout << "Name: " << file.name << ", Size: " << file.size << " bytes" << std::endl;
}
}
void saveToFile(const std::string& filename) const {
std::ofstream file(filename);
if (file.is_open()) {
for (const auto& file : files) {
file << file.name << " " << file.size << std::endl;
}
file.close();
std::cout << "File system saved to " << filename << std::endl;
} else {
std::cerr << "Error opening file " << filename << std::endl;
}
}
void loadFromFile(const std::string& filename) {
std::ifstream file(filename);
if (file.is_open()) {
files.clear();
std::string name;
int size;
while (file >> name >> size) {
files.push_back({name, size});
}
file.close();
std::cout << "File system loaded from " << filename << std::endl;
} else {
std::cerr << "Error opening file " << filename << std::endl;
}
}
};
int main() {
FileSystem fileSystem;
fileSystem.addFile("file1.txt", 1024);
fileSystem.addFile("file2.txt", 2048);
fileSystem.addFile("file3.txt", 3072);
fileSystem.printFiles();
fileSystem.saveToFile("filesystem.txt");
fileSystem.deleteFile("file2.txt");
fileSystem.printFiles();
fileSystem.loadFromFile("filesystem.txt");
fileSystem.printFiles();
return 0;
}
```
这个示例展示了一个简单的文件系统管理类 `FileSystem`。你可以使用 `addFile` 方法来添加文件,使用 `deleteFile` 方法来删除文件,使用 `printFiles` 方法来打印文件列表。还实现了 `saveToFile` 和 `loadFromFile` 方法分别用于将文件系统保存到文件和从文件加载文件系统。
在 `main` 函数中,我们演示了如何使用这个文件系统类。我们添加了三个文件,打印了文件列表,保存文件系统到文件中,删除了一个文件,再次打印文件列表,最后从文件中加载文件系统并再次打印文件列表。
希望这个示例能够满足你的需求!如果有任何问题,请随时提问。
阅读全文