怎么实现将文本文件数据读入自定义类的vector 容器
时间: 2023-12-10 17:38:04 浏览: 25
以下是一个简单的示例代码,可以将文本文件中的数据读入到自定义类的 vector 容器中:
```c++
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
// 自定义类
class MyClass {
public:
int id;
string name;
};
int main() {
vector<MyClass> myVec; // 自定义类的 vector 容器
MyClass obj; // 自定义类对象
ifstream inFile("data.txt"); // 打开文件
if (!inFile) { // 文件打开失败
cerr << "File open error!" << endl;
exit(1);
}
while (inFile >> obj.id >> obj.name) { // 逐行读取文件内容
myVec.push_back(obj); // 将读取的对象添加到 vector 容器中
}
inFile.close(); // 关闭文件
// 输出 vector 容器中的对象
for (int i = 0; i < myVec.size(); i++) {
cout << "id: " << myVec[i].id << " name: " << myVec[i].name << endl;
}
return 0;
}
```
假设文本文件 `data.txt` 的内容如下:
```
1 John
2 Alice
3 Tom
```
运行上述示例代码,输出结果为:
```
id: 1 name: John
id: 2 name: Alice
id: 3 name: Tom
```
其中,`MyClass` 类有两个属性 `id` 和 `name`,表示一个对象的标识和名称。`inFile` 是用于读取文件的输入流对象。在 `while` 循环中,依次读取文件中每行的内容,将读取到的对象添加到 `myVec` 中。最后,使用 `for` 循环输出 `myVec` 中的对象。