C++ 将文件中的多行读取到类中
c++ reading multiple lines from a file into a class
我有以下文本文件布局:
人:尤金·桑多瓦尔 ;26;雄
记者
艺术家
人:约翰娜·吉布斯;34;女性
马戏团工作人员
电影制片人
银行文员
第一行包含有关此人的一些信息,下一行是他或她以前的工作。
这是我做的类:
#pragma once
#include <string>
#include <vector>
class Person
{
public:
Person() {};
~Person() {};
std::string name;
std::string age;
std::string gender;
std::vector<std::string> previousJobs;
friend std::istream& operator >> (std::istream& is, Person& p)
{
std::string line;
std::getline(is, line);
std::istringstream iss(line);
std::getline(iss, p.name, ';');
std::getline(iss, p.age, ';');
std::getline(iss, p.gender, ';');
return is;
}
};
主要:
int main()
{
std::vector<Person> people;
std::ifstream input_file("Resources/data.txt");
Person p
while (input_file >> p)
{
people.push_back(p);
}
getchar();
return 0;
}
到目前为止,我已经成功地将第一行读入了对象。但我正在努力将以前的工作读入矢量。
成功读取文件的第一行并使用 istringstream
解析它后,您可以对其他行执行相同的操作。如果您确定单个文件包含有关一个人的信息,那么您可以自由使用:
while (![your_file].eof())
{
previousJobs.push_back(getline(is,line));
}
相关文章:
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取文件的最后一行并输入到链接列表时出错
- 为什么在读取文件大小时文件IO速度会发生变化
- 读取文件时运行时的未知行为
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C++ 读取文件读取文件不正确
- 读取文件并将其存储在unordered_map中时出现问题
- 读取文件时无法使用 OpenMP 获得加速
- 使用istringstearm和get行缓慢读取文件
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 读取文件时引发异常
- 从标准输入读取文件后读取用户输入
- 在读取文件后重置句柄
- 如何在C++编译时读取文件?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 读取文件在第二次调用时返回INVALID_HANDLE
- 通过指针读取文件
- 逐行读取文件,并将数据插入变量和数组中