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

时间:2014-02-19 06:38:42

标签: c++ string file text integer

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

Jefferson 17
Bill 24
Mary 19
Jack 22
Matthew 19
Claudia 23
Judy 18

一旦找到最老的年龄,我就无法打印最老的人的名字。谁能引导我走过它?

2 个答案:

答案 0 :(得分:1)

您只需将它们存储到vector<pair<string, int>>即可将姓名与年龄相关联。一旦找到最古老的年龄,就会找到它的名字。

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


已更新:对于您的代码(如下所述),您应该更改

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

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
    }
    ...
} 

答案 1 :(得分:1)

除非这是学校作业,你必须自己实施算法,实际上使用standard C++ library解决所有问题非常容易:

首先,您使用std::getline将每一行读入std::string个实例。

使用此字符串和std::istringstream,您可以使用普通输入运算符>>解析出不同的字段。

您可以将数据存储在std::map中,其中年龄为关键字,名称为数据。由于std::map按键排序,因此地图中的最后一个条目是“最老的”。

如果可能有多个年龄相同的人,则需要使用std::multimap代替,并准备打印多个年龄相同的人。