用c++把文本文件里的信息读入类里的代码
时间: 2024-05-03 14:19:10 浏览: 22
假设文本文件中每一行都包含一个字符串和一个整数,且用空格隔开。我们可以定义一个类来存储这些信息:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
class Data {
public:
string str;
int num;
};
```
然后,我们可以编写一个函数来将文本文件中的信息读入类中:
```c++
void readDataFromFile(const string& fileName, vector<Data>& dataVec) {
ifstream inFile(fileName);
if (!inFile.is_open()) {
cerr << "Failed to open file: " << fileName << endl;
return;
}
string line;
while (getline(inFile, line)) {
Data data;
istringstream iss(line);
iss >> data.str >> data.num;
dataVec.push_back(data);
}
}
```
在这个函数中,我们首先打开文件并检查是否成功打开。然后,我们使用 `getline()` 函数逐行读取文件,并使用 `istringstream` 对每一行进行解析。解析后的数据被存储在一个 `Data` 类型的对象中,并添加到一个 `vector` 中。
我们可以在主函数中调用这个函数来读取文件并输出其中的数据:
```c++
int main() {
vector<Data> dataVec;
readDataFromFile("data.txt", dataVec);
for (const auto& data : dataVec) {
cout << data.str << " " << data.num << endl;
}
return 0;
}
```
这个程序将会输出文本文件中的每一行数据。