C++使用vector容器存储类的数据到txt文件中,并判断原来有没有tex文件,如果没有就创建,如果有txt文件就添加数据到末尾
时间: 2023-12-14 09:36:25 浏览: 142
这里提供一份示例代码,供您参考:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
class MyClass {
public:
int id;
string name;
double score;
};
void saveDataToFile(vector<MyClass>& data) {
ofstream outfile;
bool isFileExist = false;
outfile.open("data.txt", ios::app); // 打开文件并追加写入
if (outfile.is_open()) {
isFileExist = true;
}
for (auto& item : data) {
outfile << item.id << " " << item.name << " " << item.score << endl;
}
outfile.close();
if (!isFileExist) {
cout << "New file created." << endl;
}
}
int main() {
vector<MyClass> data;
MyClass obj1 = { 1, "Tom", 89.5 };
MyClass obj2 = { 2, "Jerry", 92.3 };
data.push_back(obj1);
data.push_back(obj2);
saveDataToFile(data);
return 0;
}
```
此代码中,我们定义了一个 `MyClass` 类,包含三个成员变量。然后定义了一个 `saveDataToFile` 函数,用于将 `vector<MyClass>` 数据存储到文件中。在 `main` 函数中,我们创建了一个 `vector<MyClass>` 容器,并向其中添加了两个对象。最后调用 `saveDataToFile` 函数将数据存储到文件中。
上述代码中使用了 `ofstream` 类来操作文件。其中 `ios::app` 表示在文件末尾追加写入。在保存数据之前,我们通过打开文件的方式判断文件是否已经存在。如果文件不存在,则创建新文件。
需要注意的是,上述代码中没有对文件读取进行操作。如果需要读取已经存在的文件,可以使用 `ifstream` 类,并使用 `getline` 函数按行读取文件内容。
阅读全文