请写出一段应用vector进行C++对文件数据读取和操作并将Vector中的数据存放到自定义的类中的代码,其中文件数据包括字符串和整型常量,浮点数
时间: 2024-03-23 09:43:51 浏览: 159
用C++编写从文件中读取数据的程序
4星 · 用户满意度95%
好的,以下是一个示例代码:
```c++
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
class MyData {
public:
string str;
int i;
float f;
MyData(string s, int n, float x) : str(s), i(n), f(x) {}
};
int main() {
vector<MyData> data_vec;
ifstream infile("data.txt");
if (!infile.is_open()) {
cout << "Failed to open file." << endl;
return 1;
}
string s;
int n;
float x;
while (infile >> s >> n >> x) {
MyData d(s, n, x);
data_vec.push_back(d);
}
infile.close();
// 对数据进行操作
for (auto& d : data_vec) {
d.i += 10;
}
// 将数据写回文件
ofstream outfile("output.txt");
for (const auto& d : data_vec) {
outfile << d.str << " " << d.i << " " << d.f << endl;
}
outfile.close();
return 0;
}
```
以上代码中,我们定义了一个 `MyData` 类,用来存储文件中的每个数据项。在主函数中,我们首先定义了一个 `vector<MyData>` 类型的对象 `data_vec`,用来存放从文件中读取到的数据。然后,我们使用 `ifstream` 类读取文件中的数据,并将其存储到 `data_vec` 中。读取数据时,我们使用了 `while (infile >> s >> n >> x)` 的语法,它可以一次读取一行数据,并将数据分别存储到 `s`、`n`、`x` 中。
接下来,我们对 `data_vec` 中的数据进行了一些操作,例如将整型常量 `i` 加上了 10。最后,我们使用 `ofstream` 类将 `data_vec` 中的数据写回到文件中,以供后续使用。
阅读全文