C++ 从文本文件(C+;+;)打印字符串和整数

C++ 从文本文件(C+;+;)打印字符串和整数,c++,string,file,text,integer,C++,String,File,Text,Integer,我必须从包含字符串和整数的文本文件中读取数据,然后编写一个程序来查找最年长的人并显示他们的姓名。 这是我的文本文件中的内容 Jefferson 17 Bill 24 Mary 19 Jack 22 Matthew 19 Claudia 23 Judy 18 杰斐逊17 条例草案24 玛丽19 杰克22 马太福音19 克劳迪娅23 朱迪18 一旦我找到了最老的年龄,我就很难打印出最老的人的名字。有人能给我介绍一下吗?你只需将它们存储到向量中,就可以将姓名与年龄联系起来。一旦你找到了最古老的时代,你

我必须从包含字符串和整数的文本文件中读取数据,然后编写一个程序来查找最年长的人并显示他们的姓名。 这是我的文本文件中的内容

Jefferson 17 Bill 24 Mary 19 Jack 22 Matthew 19 Claudia 23 Judy 18 杰斐逊17 条例草案24 玛丽19 杰克22 马太福音19 克劳迪娅23 朱迪18
一旦我找到了最老的年龄,我就很难打印出最老的人的名字。有人能给我介绍一下吗?

你只需将它们存储到
向量中,就可以将姓名与年龄联系起来。一旦你找到了最古老的时代,你就会找到它的名字

如果将它们存储在两个单独的
向量中,请确保同步跟踪它们


更新:对于您的代码(如您在下面的评论),您应该更改

for(int i=1; i<=7;++i) 
{ 
    if(age[i]>max) 
        max=age[i]; 
    name[i]=max; 
    ...
} 
for(int i=1;imax)
max=年龄[i];
名称[i]=max;
...
} 

字符串名称\u最早;//存储最早的名称
对于(int i=1;imax)
{
max=年龄[i];
name_laster=name[i];//在此处更新
}
...
} 

除非这是一项学校作业,您必须自己实施算法,否则实际上使用以下方法很容易解决所有问题:

首先,使用将每一行读入一个实例

使用此字符串,然后可以使用普通输入运算符解析出不同的字段

您可以将数据存储在中,年龄作为键,名称作为数据。由于
std::map
是按键排序的,所以映射中的最后一个条目是“最老”的人


如果可以有多个年龄相同的人,则您需要改用,并准备好打印多个年龄相同的人。

您有什么代码?您好,欢迎访问stackoverflow.com。请花些时间阅读,特别是命名和。更重要的是,请阅读。你可能也想知道a是什么。你自己做了什么?主持人需要注意这类问题。这是我到目前为止的内容#include#include#include#include使用名称空间std;int main(){ifstream f;f.open(“data.txt”);字符串名称[7];int age[7],max=0;for(int i=1;imax)max=age[i];name[i]=max;cout@user3326689您可以共享您的代码,让我们更好地了解导致错误的原因。我将代码更改为该代码,但没有打印任何内容#include#include#include使用命名空间std;int main(){ifstream f;f.open(“data.txt”);字符串名[7];int age[7],max=0;for(int i=1;imax){max=age[i];name[i]=max;cout@user3326689别忘了先从文件中读取数据。
string name_oldest;             // to store the oldest name
for(int i=1; i<=7;++i) 
{ 
    if(age[i]>max) 
    {
        max=age[i]; 
        name_oldest = name[i];  // update here
    }
    ...
}