使用C++getline读文件中的一行数据,存入结构体,接下来读第二行,以此类推
时间: 2024-10-12 09:13:49 浏览: 42
在C++中,`getline()`函数常用于从输入流(如文件)读取一行文本数据。当你想从文件中逐行读取并将数据存储到结构体中时,可以按照以下步骤操作:
1. 首先,定义一个包含所需字段的结构体。例如,假设你有一个名为`Person`的结构体,它有名字`name`和年龄`age`。
```cpp
struct Person {
std::string name;
int age;
};
```
2. 定义一个`std::ifstream`对象来打开文件,并设置为二进制模式(如果不需要),通常我们默认即可。
```cpp
std::ifstream inputFile("filename.txt");
```
3. 使用`getline()`读取每一行数据。循环直到文件结束:
```cpp
Person currentPerson;
while (inputFile >> std::ws) { // std::ws忽略前导空格
getline(inputFile, currentPerson.name);
inputFile >> currentPerson.age; // 注意这里假设年龄是整数,如果不是,请适当调整输入格式
// 现在currentPerson包含了这一行的数据
// ... 进行进一步处理,如添加到容器(如vector或list)中
}
```
4. 关闭文件:
```cpp
inputFile.close();
```
每轮循环结束后,`currentPerson`结构体就存储了当前读取的一行数据。你可以将这些结构体对象添加到一个容器中,以便后续使用。
阅读全文