要读取CSV文件到结构体,你可以使用C++的文件输入流和字符串流来实现。以下是一个简单的示例代码:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
struct Person {
std::string name;
int age;
std::string city;
};
int main() {
std::vector<Person> people;
std::ifstream file("data.csv");
std::string line;
while (std::getline(file, line)) {
std::stringstream ss(line);
std::string name, age, city;
std::getline(ss, name, ',');
std::getline(ss, age, ',');
std::getline(ss, city, ',');
Person p;
p.name = name;
p.age = std::stoi(age);
p.city = city;
people.push_back(p);
}
// 输出读取到的数据
for (const auto &person : people) {
std::cout << "Name: " << person.name << ", Age: " << person.age << ", City: " << person.city << std::endl;
}
return 0;
}
在这个示例中,我们首先定义了一个Person
结构体来存储CSV文件中的数据。然后打开CSV文件并逐行读取文件内容,使用逗号作为分隔符来解析每行数据,然后将数据存储到Person
结构体中,并将每个Person
结构体添加到一个std::vector
容器中。最后,我们遍历std::vector
容器并输出读取到的数据。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据实际情况对代码进行更多的错误处理和数据验证。