C++ 在txt文档的某些部分中查找信息并将其存储在变量中

C++ 在txt文档的某些部分中查找信息并将其存储在变量中,c++,variables,search,ifstream,C++,Variables,Search,Ifstream,我有一个很大的.txt文件,里面有信息。它的结构是这样的: ID: 54670 Gender: M Name: John Doe Address: Blah Blah Blah Email: JohnDoe@.com 身份证号码:54670 性别:M 姓名:无名氏 地址:诸如此类 电邮:JohnDoe@.com 我正在尝试创建一个允许输入ID的程序。该程序将在文本文档中找到ID,然后存储ID、性别、姓名、地址等。。在变量中。 我可以搜索ID并打印以下行。但我不知道如何存储每行的特定部分,在找到I

我有一个很大的.txt文件,里面有信息。它的结构是这样的:

ID: 54670 Gender: M Name: John Doe Address: Blah Blah Blah Email: JohnDoe@.com 身份证号码:54670 性别:M 姓名:无名氏 地址:诸如此类 电邮:JohnDoe@.com 我正在尝试创建一个允许输入ID的程序。该程序将在文本文档中找到ID,然后存储ID、性别、姓名、地址等。。在变量中。 我可以搜索ID并打印以下行。但我不知道如何存储每行的特定部分,在找到ID后只存储5行中的信息。这是我到目前为止所拥有的全部。任何指点都将不胜感激。在过去的几周里,我刚刚开始自学代码。所以你们都是很好的资源

struct userInfo
{
    int id;
    char gender;
    std::string name,address,email;
};
std::string search,line;
std::ifstream inFile;
inFile.open("iData.txt");

    if (!inFile)
    {
    std::cout << "Was unable to open file!";
    return 1;
    }

        std::cout << "Enter I.D" << std::endl;
        std::getline(std::cin, search);

            while (inFile.good())
            {
                std::getline(inFile, line);
                if (line.find(search) != std::string::npos)
                {
                    std::cout << line << std::endl;
                }
            }
inFile.close();
struct userInfo
{
int-id;
性别;
std::字符串名称、地址、电子邮件;
};
std::字符串搜索,行;
std::ifstream-infle;
infle.open(“iData.txt”);
如果(!infle)
{

std::cout您可以读取一次文件并将信息保存在地图中,这样当给定id时,您就可以获得信息地图[id]。gender

您可以创建

map<int,list<string>>
之后你就可以使用

List<string> details = map.find[id];
List details=map.find[id];

我知道我可以信赖这个地方。我有几本书,但没有一本提到地图。我感谢你的帮助。我有一些改进要做,但你帮助我向前迈出了一大步。非常感谢。
List<string> details = map.find[id];